Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
moab::TagVarTypeEqual< T > Class Template Reference

#include <TagCompare.hpp>

Public Member Functions

 TagVarTypeEqual (const void *v, int s)
bool operator() (const void *data) const
bool operator() (const VarLenTag &vdata) const

Private Attributes

const Tvalue
int size

Detailed Description

template<typename T>
class moab::TagVarTypeEqual< T >

Compare variable-length tags containing a known data type

Definition at line 170 of file TagCompare.hpp.


Constructor & Destructor Documentation

template<typename T >
moab::TagVarTypeEqual< T >::TagVarTypeEqual ( const void *  v,
int  s 
) [inline]

Definition at line 177 of file TagCompare.hpp.

: value( reinterpret_cast< const T* >( v ) ), size( s / sizeof( T ) ) {}

Member Function Documentation

template<typename T >
bool moab::TagVarTypeEqual< T >::operator() ( const void *  data) const [inline]

Definition at line 179 of file TagCompare.hpp.

References moab::VarLenTag::data(), moab::VarLenTag::size(), moab::TagVarTypeEqual< T >::size, T, and moab::TagVarTypeEqual< T >::value.

    {
        const VarLenTag* vdata = reinterpret_cast< const VarLenTag* >( data );
        if( vdata->size() != size * sizeof( T ) ) return false;
        const T* ddata = reinterpret_cast< const T* >( vdata->data() );
        for( int i = 0; i < size; ++i )
            if( value[i] != ddata[i] ) return false;
        return true;
    }
template<typename T >
bool moab::TagVarTypeEqual< T >::operator() ( const VarLenTag vdata) const [inline]

Definition at line 189 of file TagCompare.hpp.

References moab::VarLenTag::data(), moab::VarLenTag::size(), moab::TagVarTypeEqual< T >::size, T, and moab::TagVarTypeEqual< T >::value.

    {
        if( vdata.size() != size * sizeof( T ) ) return false;
        const T* ddata = reinterpret_cast< const T* >( vdata.data() );
        for( int i = 0; i < size; ++i )
            if( value[i] != ddata[i] ) return false;
        return true;
    }

Member Data Documentation

template<typename T >
int moab::TagVarTypeEqual< T >::size [private]

Definition at line 174 of file TagCompare.hpp.

Referenced by moab::TagVarTypeEqual< T >::operator()().

template<typename T >
const T* moab::TagVarTypeEqual< T >::value [private]

Definition at line 173 of file TagCompare.hpp.

Referenced by moab::TagVarTypeEqual< T >::operator()().

List of all members.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines