diff options
Diffstat (limited to 'c++/src/H5CompType.h')
-rw-r--r-- | c++/src/H5CompType.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/c++/src/H5CompType.h b/c++/src/H5CompType.h new file mode 100644 index 0000000..9b2c983 --- /dev/null +++ b/c++/src/H5CompType.h @@ -0,0 +1,84 @@ +#ifndef _H5CompType_H +#define _H5CompType_H + +#ifndef H5_NO_NAMESPACE +namespace H5 { +#endif + +class CompType : public DataType { + public: + // Creates a new datatype + CompType( size_t size ); // H5Tcreate + + // Default constructor + CompType(); + + // Creates a compound datatype using an existing id + CompType( hid_t existing_id ); + + // Copy constructor - makes a copy of original object + CompType( const CompType& original ); + + // Gets the compound datatype of the specified dataset + CompType( const DataSet& dataset ); // H5Dget_type + + // Retrieves the number of members in this compound datatype. + int getNmembers() const; + + // Retrieves the name of a member of this compound datatype. + string getMemberName( int member_num ) const; + + // Retrieves the offset of a member of this compound datatype. + size_t getMemberOffset( int memb_no ) const; + + // Returns the dimensionality of the specified member. + int getMemberDims( int member_num, size_t* dims, int* perm ) const; + + // Gets the type class of the specified member. It provides to + // the user a way of knowing what type to declare. + H5T_class_t getMemberClass( int member_num ) const; + + // Returns the generic datatype of the specified member in + // this compound datatype. + DataType getMemberDataType( int member_num ) const; + + // Returns the enumeration datatype of the specified member in + // this compound datatype. + EnumType getMemberEnumType( int member_num ) const; + + // Returns the compound datatype of the specified member in + // this compound datatype. + CompType getMemberCompType( int member_num ) const; + + // Returns the integer datatype of the specified member in + // this compound datatype. + IntType getMemberIntType( int member_num ) const; + + // Returns the floating-point datatype of the specified member in + // this compound datatype. + FloatType getMemberFloatType( int member_num ) const; + + // Returns the string datatype of the specified member in + // this compound datatype. + StrType getMemberStrType( int member_num ) const; + + // Adds a new member to this compound datatype. + void insertMember( const string name, size_t offset, const DataType& new_member ) const; + + // Adds an array datatype member to this compound datatype. + void insertMember( const string name, size_t offset, int ndims, const size_t* dim, const int* perm, const DataType& new_member ) const; + + // Recursively removes padding from within this compound datatype. + void pack() const; + + virtual ~CompType(); + + private: + // Contains common code that is used by the member functions + // getMemberXxxType + hid_t p_getMemberType( int member_num ) const; +}; +#ifndef H5_NO_NAMESPACE +} +#endif +#endif |