Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2026-03-23 The HDF5 Field Guide

Loading...
Searching...
No Matches
DataType Class Reference

`#include <c++/src/H5DataType.h>`

## Detailed Description

Class DataType provides generic operations on HDF5 datatypes.

DataType inherits from H5Object because a named datatype is an HDF5 object and is a base class of ArrayType, AtomType, CompType, EnumType, and VarLenType.

Inheritance diagram for DataType:

## Public Member Functions
virtual void | close () override
| Closes the datatype if it is not a predefined type.
void | commit (const H5Location &loc, const char *name)
| Commits a transient datatype to a file, creating a new named datatype.
void | commit (const H5Location &loc, const std::string &name)
| This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.
bool | committed () const
| Determines whether a datatype is a named type or a transient type.
void | convert (const DataType &dest, size_t nelmts, void *buf, void *background, const PropList &plist=PropList::DEFAULT) const
| Converts data from this datatype to the specified datatypes.
void | copy (const DataSet &dset)
| Copies the datatype of the given dataset to this datatype object.
void | copy (const DataType &like_type)
| Copies an existing datatype to this datatype object.
| DataType ()
| Default constructor: Creates a stub datatype.
| DataType (const DataType &original)
| Copy constructor: same HDF5 object as original.
| DataType (const H5Location &loc, const char *name)
| Creates a DataType instance by opening an HDF5 datatype given its name as a char*.
| DataType (const H5Location &loc, const std::string &name)
| Creates a DataType instance by opening an HDF5 datatype given its name as an `H5std_string`.
| DataType (const H5Location &loc, const void *ref, H5R_type_t ref_type=H5R_OBJECT, const PropList &plist=PropList::DEFAULT)
| Given a reference, ref, to an hdf5 group, creates a DataType object.
| DataType (const H5T_class_t type_class, size_t size)
| Creates a object given its class and size.
| DataType (const hid_t type_id)
| Creates a datatype using an existing datatype's id.
| DataType (const PredType &pred_type)
| Creates a DataType instance using a predefined type.
virtual DataType * | decode () const
| Returns a DataType instance by decoding the binary object description of this datatype.
bool | detectClass (H5T_class_t cls) const
| Checks whether a datatype contains (or is) a certain type of datatype.
void | encode ()
| Creates a binary object description of this datatype.
H5T_conv_t | find (const DataType &dest, H5T_cdata_t **pcdata) const
| Finds a conversion function that can handle a conversion from this datatype to the specified datatype, dest.
virtual std::string | fromClass () const override
| Returns this class name.
H5T_class_t | getClass () const
| Returns the datatype class identifier.
PropList | getCreatePlist () const
| Returns a copy of the property list, which is for datatype creation.
virtual hid_t | getId () const override
| Get the id of this datatype.
size_t | getSize () const
| Returns the size of a datatype.
DataType | getSuper () const
| Returns the base datatype from which a datatype is derived.
std::string | getTag () const
| Gets the tag associated with an opaque datatype.
bool | hasBinaryDesc () const
| Determines whether this datatype has a binary object description.
bool | isVariableStr () const
| Check whether this datatype is a variable-length string.
void | lock () const
| Locks a datatype, making it read-only and non-destructible.
bool | operator!= (const DataType &compared_type) const
| Compares this DataType against the given one to determines whether the two objects refer to different actual datatypes.
DataType & | operator= (const DataType &rhs)
| Assignment operator.
bool | operator== (const DataType &compared_type) const
| Compares this DataType against the given one to determines whether the two objects refer to the same actual datatype.
void | registerFunc (H5T_pers_t pers, const char *name, const DataType &dest, H5T_conv_t func) const
| Registers the specified conversion function.
void | registerFunc (H5T_pers_t pers, const std::string &name, const DataType &dest, H5T_conv_t func) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.
void | setTag (const char *tag) const
| Tags an opaque datatype.
void | setTag (const std::string &tag) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.
void | unregister (H5T_pers_t pers, const char *name, const DataType &dest, H5T_conv_t func) const
| Removes a conversion function from all conversion paths.
void | unregister (H5T_pers_t pers, const std::string &name, const DataType &dest, H5T_conv_t func) const
| This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.
virtual | ~DataType () override
| Properly terminates access to this datatype.
Public Member Functions inherited from H5Object
bool | attrExists (const char *name) const
| Checks whether the named attribute exists at this location.
bool | attrExists (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
Attribute | createAttribute (const char *name, const DataType &type, const DataSpace &space, const PropList &create_plist=PropList::DEFAULT) const
| Creates an attribute for a group, dataset, or named datatype.
Attribute | createAttribute (const std::string &name, const DataType &type, const DataSpace &space, const PropList &create_plist=PropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
int | getNumAttrs () const
| Returns the number of attributes attached to this HDF5 object.
std::string | getObjName () const
| Returns the name of this object as an H5std_string.
ssize_t | getObjName (char *obj_name, size_t buf_size=0) const
| Given an id, returns the type of the object.
ssize_t | getObjName (std::string &obj_name, size_t len=0) const
| Gets the name of this object, returning its length.
int | iterateAttrs (attr_operator_t user_op, unsigned *idx=NULL, void *op_data=NULL)
| Iterates a user's function over all the attributes of an H5 object, which may be a group, dataset or named datatype.
unsigned | objVersion () const
| Returns the header version of this HDF5 object.
Attribute | openAttribute (const char *name) const
| Opens an attribute given its name.
Attribute | openAttribute (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
Attribute | openAttribute (const unsigned int idx) const
| Opens an attribute given its index.
void | removeAttr (const char *name) const
| Removes the named attribute from this object.
void | removeAttr (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
void | renameAttr (const char *oldname, const char *newname) const
| Renames the named attribute from this object.
void | renameAttr (const std::string &oldname, const std::string &newname) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for the names.
void | visit (H5_index_t idx_type, H5_iter_order_t order, visit_operator_t user_op, void *op_data, unsigned int fields)
| Recursively visits all HDF5 objects accessible from this object.
Public Member Functions inherited from H5Location
H5O_type_t | childObjType (const char *objname) const
| Returns the type of an object in this file/group, given the object's name.
H5O_type_t | childObjType (const std::string &objname) const
| This is an overloaded member function, provided for convenience. It takes an H5std_string for the object's name.
H5O_type_t | childObjType (hsize_t index, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_INC, const char *objname=".") const
| Returns the type of an object in this file/group, given the object's index and its type and order.
unsigned | childObjVersion (const char *objname) const
| Returns the object header version of an object in this file/group, given the object's name.
unsigned | childObjVersion (const std::string &objname) const
| This is an overloaded member function, provided for convenience. It takes an H5std_string for the object's name.
void | copyLink (const char *src_name, const char *dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Copies a link from a group in the same location.
void | copyLink (const char *src_name, const Group &dst, const char *dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Copies a link from one group to another.
void | copyLink (const std::string &src_name, const Group &dst, const std::string &dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for src_name and dst_name.
void | copyLink (const std::string &src_name, const std::string &dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for src_name and dst_name.
DataSet | createDataSet (const char *name, const DataType &data_type, const DataSpace &data_space, const DSetCreatPropList &create_plist=DSetCreatPropList::DEFAULT, const DSetAccPropList &dapl=DSetAccPropList::DEFAULT, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT) const
| Creates a new dataset at this location.
DataSet | createDataSet (const std::string &name, const DataType &data_type, const DataSpace &data_space, const DSetCreatPropList &create_plist=DSetCreatPropList::DEFAULT, const DSetAccPropList &dapl=DSetAccPropList::DEFAULT, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
Group | createGroup (const char *name, const LinkCreatPropList &lcpl) const
| Creates a new group at this location, which can be a file, group, dataset, attribute, or named datatype.
Group | createGroup (const char *name, size_t size_hint=0) const
| Creates a new group at this location, which can be a file, group, dataset, attribute, or named datatype.
Group | createGroup (const std::string &name, const LinkCreatPropList &lcpl) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
Group | createGroup (const std::string &name, size_t size_hint=0) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | dereference (const H5Location &loc, const void *ref, H5R_type_t ref_type=H5R_OBJECT, const PropList &plist=PropList::DEFAULT)
| Dereferences a reference into an HDF5 object, given an HDF5 object.
bool | exists (const char *name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Deprecated in favor of nameExists.
bool | exists (const std::string &name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Deprecated in favor of nameExists.
void | flush (H5F_scope_t scope) const
| Flushes all buffers associated with a location to disk.
ssize_t | getComment (const char *name, size_t buf_size, char *comment) const
| Retrieves the comment for this location, returning its length.
std::string | getComment (const char *name, size_t buf_size=0) const
| Returns the comment as string for this location, returning its length.
std::string | getComment (const std::string &name, size_t buf_size=0) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
std::string | getFileName () const
| Gets the name of the file, in which an HDF5 object at this location belongs.
H5L_info2_t | getLinkInfo (const char *link_name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Returns the information of the named link.
H5L_info2_t | getLinkInfo (const std::string &link_name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for link_name.
std::string | getLinkval (const char *link_name, size_t size=0) const
| Returns the name of the object that the symbolic link points to.
std::string | getLinkval (const std::string &link_name, size_t size=0) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | getNativeObjinfo (const char *grp_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t idx, H5O_native_info_t &objinfo, unsigned fields=H5O_NATIVE_INFO_HDR, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Retrieves native information about an HDF5 object given its index.
void | getNativeObjinfo (const char *name, H5O_native_info_t &objinfo, unsigned fields=H5O_NATIVE_INFO_HDR, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Retrieves native information about an HDF5 object given its name.
void | getNativeObjinfo (const std::string &grp_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t idx, H5O_native_info_t &objinfo, unsigned fields=H5O_NATIVE_INFO_HDR, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for grp_name.
void | getNativeObjinfo (const std::string &name, H5O_native_info_t &objinfo, unsigned fields=H5O_NATIVE_INFO_HDR, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
void | getNativeObjinfo (H5O_native_info_t &objinfo, unsigned fields=H5O_NATIVE_INFO_HDR) const
| Retrieves native information about an HDF5 object.
hsize_t | getNumObjs () const
| Deprecated - moved to H5::Group in 1.10.2.
void | getObjinfo (const char *grp_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t idx, H5O_info2_t &objinfo, unsigned fields=H5O_INFO_BASIC, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Retrieves information about an HDF5 object given its index.
void | getObjinfo (const char *name, bool follow_link, H5G_stat_t &statbuf) const
| Returns information about an object.
void | getObjinfo (const char *name, H5G_stat_t &statbuf) const
| This is an overloaded member function, provided for convenience. It differs from the above functions in that it doesn't have the parameter follow_link.
void | getObjinfo (const char *name, H5O_info2_t &objinfo, unsigned fields=H5O_INFO_BASIC, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Retrieves information about an HDF5 object given its name.
void | getObjinfo (const std::string &grp_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t idx, H5O_info2_t &objinfo, unsigned fields=H5O_INFO_BASIC, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
void | getObjinfo (const std::string &name, bool follow_link, H5G_stat_t &statbuf) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | getObjinfo (const std::string &name, H5G_stat_t &statbuf) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | getObjinfo (const std::string &name, H5O_info2_t &objinfo, unsigned fields=H5O_INFO_BASIC, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes a reference to an `H5std_string` for name.
void | getObjinfo (H5O_info2_t &objinfo, unsigned fields=H5O_INFO_BASIC) const
| Retrieves information about an HDF5 object.
std::string | getObjnameByIdx (hsize_t idx) const
| Returns the name of an object in this group, given the object's index.
ssize_t | getObjnameByIdx (hsize_t idx, char *name, size_t size) const
| Retrieves the name of an object in this group, given the object's index.
ssize_t | getObjnameByIdx (hsize_t idx, std::string &name, size_t size) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
H5G_obj_t | getObjType (void *ref, H5R_type_t ref_type=H5R_OBJECT) const
| Retrieves the type of object that an object reference points to.
H5G_obj_t | getObjTypeByIdx (hsize_t idx) const
| Returns the type of an object in this group, given the object's index. (Deprecated).
H5G_obj_t | getObjTypeByIdx (hsize_t idx, char *type_name) const
| This is an overloaded member function, provided for convenience. It differs from the above function because it also provides the returned object type in text (char*) (Deprecated).
H5G_obj_t | getObjTypeByIdx (hsize_t idx, std::string &type_name) const
| This is an overloaded member function, provided for convenience. It differs from the above function because it also provides the returned object type in text (H5std_string&) (Deprecated).
H5O_type_t | getRefObjType (void *ref, H5R_type_t ref_type=H5R_OBJECT) const
| Retrieves the type of object that an object reference points to.
DataSpace | getRegion (void *ref, H5R_type_t ref_type=H5R_DATASET_REGION) const
| Retrieves a dataspace with the region pointed to selected.
| H5Location ()
int | iterateElems (const char *name, int *idx, H5G_iterate_t op, void *op_data)
| Iterates a user's function over the entries of a group.
int | iterateElems (const std::string &name, int *idx, H5G_iterate_t op, void *op_data)
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | link (const char *curr_name, const Group &new_loc, const char *new_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Creates a hard link from new_name to curr_name.
void | link (const char *curr_name, const hid_t same_loc, const char *new_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Creates a hard link from new_name to curr_name - can be used to pass in H5L_SAME_LOC.
void | link (const char *target_name, const char *link_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Creates a soft link from link_name to target_name.
void | link (const std::string &curr_name, const Group &new_loc, const std::string &new_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for curr_name and new_name.
void | link (const std::string &curr_name, const hid_t same_loc, const std::string &new_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for curr_name and new_name.
void | link (const std::string &target_name, const std::string &link_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for target_name and link_name.
void | link (H5L_type_t link_type, const char *curr_name, const char *new_name) const
| Creates a link of the specified type from new_name to curr_name.
void | link (H5L_type_t link_type, const std::string &curr_name, const std::string &new_name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for curr_name and new_name.
void | mount (const char *name, const H5File &child, const PropList &plist) const
| Mounts the file child onto this group.
void | mount (const std::string &name, const H5File &child, const PropList &plist) const
| This is an overloaded member function, provided for convenience. It takes an `H5std_string` for name.
void | move (const char *src, const char *dst) const
| Renames an object at this location. - Deprecated in favor of moveLink().
void | move (const std::string &src, const std::string &dst) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for src and dst. - Deprecated in favor of moveLink().
void | moveLink (const char *src_name, const char *dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Renames a link in this group.
void | moveLink (const char *src_name, const Group &dst, const char *dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Renames a link in this group and moves it to a new location.
void | moveLink (const std::string &src_name, const Group &dst, const std::string &dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for src_name and dst_name.
void | moveLink (const std::string &src_name, const std::string &dst_name, const LinkCreatPropList &lcpl=LinkCreatPropList::DEFAULT, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for src_name and dst_name.
bool | nameExists (const char *name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Checks if a link of a given name exists in a location.
bool | nameExists (const std::string &name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Checks if a link of a given name exists in a location.
DataSet | openDataSet (const char *name, const DSetAccPropList &dapl=DSetAccPropList::DEFAULT) const
| Opens an existing dataset at this location.
DataSet | openDataSet (const std::string &name, const DSetAccPropList &dapl=DSetAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
Group | openGroup (const char *name) const
| Opens an existing group in a location which can be a file or another group.
Group | openGroup (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | reference (void *ref, const char *name, const DataSpace &dataspace, H5R_type_t ref_type=H5R_DATASET_REGION) const
| Creates a reference to an HDF5 object or a dataset region.
void | reference (void *ref, const char *name, H5R_type_t ref_type=H5R_OBJECT) const
| This is an overloaded function, provided for your convenience. It differs from the above function in that it does not take a DataSpace object and the reference type must be specified.
void | reference (void *ref, const std::string &name, const DataSpace &dataspace, H5R_type_t ref_type=H5R_DATASET_REGION) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | reference (void *ref, const std::string &name, H5R_type_t ref_type=H5R_OBJECT) const
| This is an overloaded function, provided for your convenience. It differs from the above function in that it takes an `H5std_string` for the object's name.
void | removeComment (const char *name) const
| Removes the comment from an object specified by its name.
void | removeComment (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | setComment (const char *comment) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it doesn't take an object name.
void | setComment (const char *name, const char *comment) const
| Sets or resets the comment for an object specified by its name.
void | setComment (const std::string &comment) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for comment.
void | setComment (const std::string &name, const std::string &comment) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name and comment.
virtual void | throwException (const std::string &func_name, const std::string &msg) const
| For subclasses, H5File and Group, to throw appropriate exception.
void | unlink (const char *link_name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| Removes the specified link from this group.
void | unlink (const std::string &link_name, const LinkAccPropList &lapl=LinkAccPropList::DEFAULT) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
void | unmount (const char *name) const
| Unmounts the specified file.
void | unmount (const std::string &name) const
| This is an overloaded member function, provided for convenience. It differs from the above function in that it takes an `H5std_string` for name.
Public Member Functions inherited from IdComponent
void | decRefCount () const
| Decrement reference counter for the id of this object.
void | decRefCount (const hid_t obj_id) const
| Decrement reference counter for a given id.
int | getCounter () const
| Returns the reference counter for the id of this object.
int | getCounter (const hid_t obj_id) const
| Returns the reference counter for a given id.
H5I_type_t | getHDFObjType () const
| Returns the type of the object. It is an overloaded function of the above function.
void | incRefCount () const
| Increment reference counter for the id of this object.
void | incRefCount (const hid_t obj_id) const
| Increment reference counter for a given id.
std::string | inMemFunc (const char *func_name) const
| Makes and returns string "<class-name>::<func_name>".
IdComponent & | operator= (const IdComponent &rhs)
| Assignment operator.
void | setId (const hid_t new_id)
| Sets the identifier of this object to a new value.
virtual | ~IdComponent ()=default

## Static Public Member Functions
static bool | detectClass (const PredType &pred_type, H5T_class_t cls)
| Checks whether a predtype is a certain class of datatype.
Static Public Member Functions inherited from IdComponent
static H5I_type_t | getHDFObjType (const hid_t obj_id)
| Given an id, returns the type of the object.
static hsize_t | getNumMembers (H5I_type_t type)
| Returns the number of members of the given type.
static bool | isValid (hid_t an_id)
| Checks if the given ID is valid.
static bool | typeExists (H5I_type_t type)
| Queries if a given type is currently registered with the library.

## Protected Member Functions
hid_t | p_decode () const
hid_t | p_opentype (const H5Location &loc, const char *dtype_name) const
| Opens an HDF5 datatype given its name.
virtual void | p_setId (const hid_t new_id) override
| Sets the identifier of this object to a new value.
Protected Member Functions inherited from H5Object
| H5Object ()
virtual | ~H5Object () override=default
Protected Member Functions inherited from H5Location
hid_t | p_dereference (hid_t loc_id, const void *ref, H5R_type_t ref_type, const PropList &plist, const char *from_func)
H5G_obj_t | p_get_obj_type (void *ref, H5R_type_t ref_type) const
H5O_type_t | p_get_ref_obj_type (void *ref, H5R_type_t ref_type) const
void | p_reference (void *ref, const char *name, hid_t space_id, H5R_type_t ref_type) const
virtual | ~H5Location () override=default
Protected Member Functions inherited from IdComponent
| IdComponent ()
| Default constructor.
std::string | p_get_file_name () const

## Protected Attributes
hid_t | id

## Friends
void | f_DataType_setId (DataType *dtype, hid_t new_id)

## Additional Inherited Members
Static Protected Member Functions inherited from IdComponent
static bool | p_valid_id (const hid_t obj_id)
Static Protected Attributes inherited from IdComponent
static bool | H5dontAtexit_called = false

## Constructor & Destructor Documentation

## ◆ DataType() [1/8]

DataType | ( | const H5T_class_t | type_class,
|  | size_t | size )

Creates a object given its class and size.

Parameters

  type_class | - IN: Class of datatype to create
  size | - IN: Number of bytes in the datatype to create

Exceptions

  H5::DataTypeIException |

## ◆ DataType() [2/8]

DataType | ( | const DataType & | original | ) |

Copy constructor: same HDF5 object as original.

## ◆ DataType() [3/8]

DataType | ( | const PredType & | pred_type | ) |

Creates a DataType instance using a predefined type.

Parameters

  pred_type | - IN: Predefined datatype

Exceptions

  H5::DataTypeIException |

## ◆ DataType() [4/8]

DataType | ( | const H5Location & | loc,
|  | const char * | dtype_name )

Creates a DataType instance by opening an HDF5 datatype given its name as a char*.

Parameters

  loc | - IN: Location of the type
  dtype_name | - IN: Datatype name

Exceptions

  H5::DataTypeIException |

## ◆ DataType() [5/8]

DataType | ( | const H5Location & | loc,
|  | const std::string & | dtype_name )

Creates a DataType instance by opening an HDF5 datatype given its name as an `H5std_string`.

Parameters

  loc | - IN: Location of the type
  dtype_name | - IN: Datatype name

Exceptions

  H5::DataTypeIException |

## ◆ DataType() [6/8]

DataType | ( | const H5Location & | loc,
|  | const void * | ref,
|  | H5R_type_t | ref_type = H5R_OBJECT,
|  | const PropList & | plist = PropList::DEFAULT )

Given a reference, ref, to an hdf5 group, creates a DataType object.

Parameters

  loc | - IN: Location referenced object is in
  ref | - IN: Reference pointer
  ref_type | - IN: Reference type - default to H5R_OBJECT
  plist | - IN: Property list - default to PropList::DEFAULT

Exceptions

  H5::ReferenceException |

## ◆ DataType() [7/8]

DataType | ( | const hid_t | existing_id | ) |

Creates a datatype using an existing datatype's id.

Parameters

  existing_id | - IN: Id of the existing datatype

## ◆ DataType() [8/8]

DataType | ( |  | ) |

Default constructor: Creates a stub datatype.

## ◆ ~DataType()

~DataType | ( |  | ) |
| override virtual

Properly terminates access to this datatype.

## Member Function Documentation

## ◆ close()

void close | ( |  | ) |
| override virtual

Closes the datatype if it is not a predefined type.

Exceptions

  H5::DataTypeIException |

Implements IdComponent.

## ◆ commit() [1/2]

void commit | ( | const H5Location & | loc,
|  | const char * | name )

Commits a transient datatype to a file, creating a new named datatype.

Parameters

  loc | - IN: A location (file, dataset, datatype, or group)
  name | - IN: Name of the datatype

Exceptions

  H5::DataTypeIException |

## ◆ commit() [2/2]

void commit | ( | const H5Location & | loc,
|  | const std::string & | name )

This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.

## ◆ committed()

bool committed | ( |  | ) | const

Determines whether a datatype is a named type or a transient type.

Returns
  `true` if the datatype is a named type, and `false`, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ convert()

void convert | ( | const DataType & | dest,
|  | size_t | nelmts,
|  | void * | buf,
|  | void * | background,
|  | const PropList & | plist = PropList::DEFAULT ) const

Converts data from this datatype to the specified datatypes.

Parameters

  dest | - IN: Destination datatype
  nelmts | - IN: Size of array buf
  buf | - IN/OUT: Array containing pre- and post-conversion values
  background | - IN: Optional background buffer
  plist | - IN: Property list - default to PropList::DEFAULT

Exceptions

  H5::DataTypeIException |

## ◆ copy() [1/2]

void copy | ( | const DataSet & | dset | ) |

Copies the datatype of the given dataset to this datatype object.

Parameters

  dset | - IN: Dataset

Exceptions

  H5::DataTypeIException |

Description
  The resulted dataset will be transient and modifiable.

## ◆ copy() [2/2]

void copy | ( | const DataType & | like_type | ) |

Copies an existing datatype to this datatype object.

Parameters

  like_type | - IN: Datatype to be copied

Exceptions

  H5::DataTypeIException |

## ◆ decode()

DataType * decode | ( |  | ) | const
| virtual

Returns a DataType instance by decoding the binary object description of this datatype.

Exceptions

  H5::DataTypeIException |

Reimplemented in ArrayType, CompType, EnumType, FloatType, IntType, StrType, and VarLenType.

## ◆ detectClass() [1/2]

bool detectClass | ( | const PredType & | pred_type,
|  | H5T_class_t | cls )
| static

Checks whether a predtype is a certain class of datatype.

Returns
  true if this predtype is the specified type class, and false, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ detectClass() [2/2]

bool detectClass | ( | H5T_class_t | cls | ) | const

Checks whether a datatype contains (or is) a certain type of datatype.

Returns
  true if this datatype contains or is the specified type, and false, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ encode()

void encode | ( |  | ) |

Creates a binary object description of this datatype.

Exceptions

  H5::DataTypeIException |

## ◆ find()

H5T_conv_t find | ( | const DataType & | dest,
|  | H5T_cdata_t ** | pcdata ) const

Finds a conversion function that can handle a conversion from this datatype to the specified datatype, dest.

Parameters

  dest | - IN: Destination datatype
  pcdata | - IN: Pointer to type conversion data

Returns
  Pointer to a suitable conversion function

Exceptions

  H5::DataTypeIException |

## ◆ fromClass()

virtual std::string fromClass | ( |  | ) | const
| override virtual

Returns this class name.

Reimplemented from IdComponent.

Reimplemented in ArrayType, AtomType, CompType, EnumType, FloatType, IntType, PredType, StrType, and VarLenType.

## ◆ getClass()

H5T_class_t getClass | ( |  | ) | const

Returns the datatype class identifier.

Returns
  Datatype class identifier

Exceptions

  H5::DataTypeIException |

## ◆ getCreatePlist()

PropList getCreatePlist | ( |  | ) | const

Returns a copy of the property list, which is for datatype creation.

Returns
  A property list object

Exceptions

  H5::DataTypeIException |

## ◆ getId()

hid_t getId | ( |  | ) | const
| override virtual

Get the id of this datatype.

Returns
  Datatype identifier

Implements H5Object.

## ◆ getSize()

size_t getSize | ( |  | ) | const

Returns the size of a datatype.

Returns
  Datatype size in bytes

Exceptions

  H5::DataTypeIException |

## ◆ getSuper()

DataType getSuper | ( |  | ) | const

Returns the base datatype from which a datatype is derived.

Returns
  DataType object

Exceptions

  H5::DataTypeIException |

## ◆ getTag()

std::string getTag | ( |  | ) | const

Gets the tag associated with an opaque datatype.

Returns
  Tag associated with the opaque datatype

Exceptions

  H5::DataTypeIException |

## ◆ hasBinaryDesc()

bool hasBinaryDesc | ( |  | ) | const

Determines whether this datatype has a binary object description.

Exceptions

  H5::DataTypeIException |

## ◆ isVariableStr()

bool isVariableStr | ( |  | ) | const

Check whether this datatype is a variable-length string.

Returns
  true if this datatype is a variable-length string, and false, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ lock()

void lock | ( |  | ) | const

Locks a datatype, making it read-only and non-destructible.

Exceptions

  H5::DataTypeIException |

Description
  This is normally done by the library for predefined data types so the application doesn't inadvertently change or delete a predefined type.

Once a data type is locked it can never be unlocked unless the entire library is closed.

## ◆ operator!=()

bool operator!= | ( | const DataType & | compared_type | ) | const

Compares this DataType against the given one to determines whether the two objects refer to different actual datatypes.

Parameters

  compared_type | - IN: Reference to the datatype to compare

Returns
  true if the datatypes are not equal, and false, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ operator=()

DataType & operator= | ( | const DataType & | rhs | ) |

Assignment operator.

Parameters

  rhs | - IN: Reference to the existing datatype

Returns
  Reference to DataType instance

Exceptions

  H5::DataTypeIException |

## ◆ operator==()

bool operator== | ( | const DataType & | compared_type | ) | const

Compares this DataType against the given one to determines whether the two objects refer to the same actual datatype.

Parameters

  compared_type | - IN: Reference to the datatype to compare

Returns
  true if the datatypes are equal, and false, otherwise.

Exceptions

  H5::DataTypeIException |

## ◆ p_decode()

hid_t p_decode | ( |  | ) | const
| protected

description of this datatype.

Exceptions

  H5::DataTypeIException |

## ◆ p_opentype()

hid_t p_opentype | ( | const H5Location & | loc,
|  | const char * | dtype_name ) const
| protected

Opens an HDF5 datatype given its name.

Parameters

  loc | - IN: Location of the type
  dtype_name | - IN: Datatype name

Exceptions

  H5::DataTypeIException |

## ◆ p_setId()

void p_setId | ( | const hid_t | new_id | ) |
| override protected virtual

Sets the identifier of this object to a new value.

Exceptions

  H5::IdComponentException | when the attempt to close the HDF5 object fails

Implements H5Object.

## ◆ registerFunc() [1/2]

void registerFunc | ( | H5T_pers_t | pers,
|  | const char * | name,
|  | const DataType & | dest,
|  | H5T_conv_t | func ) const

Registers the specified conversion function.

Parameters

  pers | - IN: Conversion option `H5T_PERS_HARD` for hard conversion functions `H5T_PERS_SOFT` for soft conversion functions.
  name | - IN: Name displayed in diagnostic output.
  dest | - IN: Destination datatype.
  func | - IN: Function to convert between source and destination datatypes.

Exceptions

  H5::DataTypeIException |

Description
  For information, please refer to the H5Tregister API in the HDF5 C Reference Manual.

## ◆ registerFunc() [2/2]

void registerFunc | ( | H5T_pers_t | pers,
|  | const std::string & | name,
|  | const DataType & | dest,
|  | H5T_conv_t | func ) const

This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.

## ◆ setTag() [1/2]

void setTag | ( | const char * | tag | ) | const

Tags an opaque datatype.

Parameters

  tag | - IN: Descriptive ASCII string with which the opaque datatype is to be tagged.

Exceptions

  H5::DataTypeIException |

## ◆ setTag() [2/2]

void setTag | ( | const std::string & | tag | ) | const

This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.

## ◆ unregister() [1/2]

void unregister | ( | H5T_pers_t | pers,
|  | const char * | name,
|  | const DataType & | dest,
|  | H5T_conv_t | func ) const

Removes a conversion function from all conversion paths.

Parameters

  pers | - IN: Conversion option `H5T_PERS_HARD` for hard conversion functions `H5T_PERS_SOFT` for soft conversion functions.
  name | - IN: Name displayed in diagnostic output.
  dest | - IN: Destination datatype.
  func | - IN: Function to convert between source and destination datatypes.

Exceptions

  H5::DataTypeIException |

## ◆ unregister() [2/2]

void unregister | ( | H5T_pers_t | pers,
|  | const std::string & | name,
|  | const DataType & | dest,
|  | H5T_conv_t | func ) const

This is an overloaded member function, provided for convenience. It differs from the above function only in the type of the argument name.

## Friends And Related Symbol Documentation

## ◆ f_DataType_setId

void f_DataType_setId | ( | DataType * | dtype,
|  | hid_t | new_id )
| friend

## Field Documentation

## ◆ id

hid_t id
| protected

The documentation for this class was generated from the following files:

- c++/src/H5DataType.h
- c++/src/H5DataType.cpp