diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2018-07-17 14:12:10 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2018-07-17 14:12:10 (GMT) |
commit | 3aa24435180d10aeca6493f7c1b277cfd5c73fad (patch) | |
tree | 4b2a16506fd6b76f3c86d30c82f2d83a26b60869 /c++/src | |
parent | 944735221e3dc6545aca753b09041cef7ea09fb1 (diff) | |
download | hdf5-3aa24435180d10aeca6493f7c1b277cfd5c73fad.zip hdf5-3aa24435180d10aeca6493f7c1b277cfd5c73fad.tar.gz hdf5-3aa24435180d10aeca6493f7c1b277cfd5c73fad.tar.bz2 |
Fixed HDFFV-10458 partially
Description:
Added wrappers for H5Oget_info_by_idx2.
// Returns information about an HDF5 object, given its index.
void getInfo(const char* grp_name, H5_index_t idx_type,
H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
unsigned fields = H5O_INFO_BASIC,
const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
void getInfo(const H5std_string& grp_name, H5_index_t idx_type,
H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
unsigned fields = H5O_INFO_BASIC,
const LinkAccPropList& lapl = LinkAccPropList::DEFAULT)
Platforms tested:
Linux/64 (jelly)
Linux/32 (jam)
Darwin (osx1010test)
Diffstat (limited to 'c++/src')
-rw-r--r-- | c++/src/H5Object.cpp | 77 | ||||
-rw-r--r-- | c++/src/H5Object.h | 18 |
2 files changed, 86 insertions, 9 deletions
diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index 58b34ae..a33acb3 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -228,10 +228,17 @@ int H5Object::iterateAttrs(attr_operator_t user_op, unsigned *_idx, void *op_dat //-------------------------------------------------------------------------- // Function: H5Object::getInfo -///\brief Returns information about an HDF5 object. +///\brief Retrieves information about an HDF5 object. ///\param objinfo - OUT: Struct containing the object info ///\param fields - IN: Indicates the group of information to be retrieved -/// - default to H5O_INFO_BASIC +///\par Description +/// Valid values of \a fields are as follows: +/// \li \c H5O_INFO_BASIC (default) +/// \li \c H5O_INFO_TIME +/// \li \c H5O_INFO_NUM_ATTRS +/// \li \c H5O_INFO_HDR +/// \li \c H5O_INFO_META_SIZE +/// \li \c H5O_INFO_ALL // July, 2018 //-------------------------------------------------------------------------- void H5Object::getInfo(H5O_info_t& objinfo, unsigned fields) const @@ -242,17 +249,25 @@ void H5Object::getInfo(H5O_info_t& objinfo, unsigned fields) const // Throw exception if C API returns failure if (ret_value < 0) - throwException(inMemFunc("getObjinfo"), "H5Oget_info2 failed"); + throwException(inMemFunc("getInfo"), "H5Oget_info2 failed"); } //-------------------------------------------------------------------------- // Function: H5Object::getInfo -///\brief Returns information about an HDF5 object given its name. +///\brief Retrieves information about an HDF5 object given its name. ///\param name - IN: Name of the object to be queried - \c char * ///\param objinfo - OUT: Struct containing the object info ///\param fields - IN: Indicates the group of information to be retrieved /// - default to H5O_INFO_BASIC ///\param lapl - IN: Link access property list +///\par Description +/// Valid values of \a fields are as follows: +/// \li \c H5O_INFO_BASIC (default) +/// \li \c H5O_INFO_TIME +/// \li \c H5O_INFO_NUM_ATTRS +/// \li \c H5O_INFO_HDR +/// \li \c H5O_INFO_META_SIZE +/// \li \c H5O_INFO_ALL // July, 2018 //-------------------------------------------------------------------------- void H5Object::getInfo(const char* name, H5O_info_t& objinfo, unsigned fields, const LinkAccPropList& lapl) const @@ -262,7 +277,7 @@ void H5Object::getInfo(const char* name, H5O_info_t& objinfo, unsigned fields, c // Throw exception if C API returns failure if (ret_value < 0) - throwException(inMemFunc("getObjinfo"), "H5Oget_info_by_name2 failed"); + throwException(inMemFunc("getInfo"), "H5Oget_info_by_name2 failed"); } //-------------------------------------------------------------------------- @@ -279,12 +294,60 @@ void H5Object::getInfo(const char* name, H5O_info_t& objinfo, unsigned fields, c //-------------------------------------------------------------------------- void H5Object::getInfo(const H5std_string& name, H5O_info_t& objinfo, unsigned fields, const LinkAccPropList& lapl) const { + getInfo(name.c_str(), objinfo, fields, lapl); +} + +//-------------------------------------------------------------------------- +// Function: H5Object::getInfo +///\brief Retrieves information about an HDF5 object given its index. +///\param grp_name - IN: Group name where the object belongs - \c char * +///\param idx_type - IN: Type of index +///\param order - IN: Order to traverse +///\param idx - IN: Object position +///\param objinfo - OUT: Struct containing the object info +///\param fields - IN: Indicates the group of information to be retrieved +/// - default to H5O_INFO_BASIC +///\param lapl - IN: Link access property list +///\par Description +/// Valid values of \a fields are as follows: +/// \li \c H5O_INFO_BASIC (default) +/// \li \c H5O_INFO_TIME +/// \li \c H5O_INFO_NUM_ATTRS +/// \li \c H5O_INFO_HDR +/// \li \c H5O_INFO_META_SIZE +/// \li \c H5O_INFO_ALL +// July, 2018 +//-------------------------------------------------------------------------- +void H5Object::getInfo(const char* grp_name, H5_index_t idx_type, + H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo, unsigned fields, + const LinkAccPropList& lapl) const +{ // Use C API to get information of the object - herr_t ret_value = H5Oget_info_by_name2(getId(), name.c_str(), &objinfo, fields, lapl.getId()); + herr_t ret_value = H5Oget_info_by_idx2(getId(), grp_name, idx_type, order, + idx, &objinfo, fields, lapl.getId()); // Throw exception if C API returns failure if (ret_value < 0) - throwException(inMemFunc("getObjinfo"), "H5Oget_info_by_name2 failed"); + throwException(inMemFunc("getInfo"), "H5Oget_info_by_idx2 failed"); +} + +//-------------------------------------------------------------------------- +// Function: H5Object::getInfo +///\brief This is an overloaded member function, provided for convenience. +/// It differs from the above function in that it takes +/// a reference to an \c H5std_string for \a name. +///\param name - IN: Name of the object to be queried - \c H5std_string +///\param objinfo - OUT: Struct containing the object info +///\param fields - IN: Indicates a group of information to be retrieved +/// - default to H5O_INFO_BASIC +///\param lapl - IN: Link access property list +// July, 2018 +//-------------------------------------------------------------------------- +void H5Object::getInfo(const H5std_string& grp_name, H5_index_t idx_type, + H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo, unsigned fields, + const LinkAccPropList& lapl) const +{ + getInfo(grp_name.c_str(), idx_type, order, idx, objinfo, fields, lapl); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index f15c8eb..268fe58 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -95,8 +95,22 @@ class H5_DLLCPP H5Object : public H5Location { // Returns information about an HDF5 object. void getInfo(H5O_info_t& objinfo, unsigned fields = H5O_INFO_BASIC) const; // Returns information about an HDF5 object, given its name. - void getInfo(const char* name, H5O_info_t& objinfo, unsigned fields = H5O_INFO_BASIC, const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; - void getInfo(const H5std_string& name, H5O_info_t& objinfo, unsigned fields = H5O_INFO_BASIC, const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; + void getInfo(const char* name, H5O_info_t& objinfo, + unsigned fields = H5O_INFO_BASIC, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; + void getInfo(const H5std_string& name, H5O_info_t& objinfo, + unsigned fields = H5O_INFO_BASIC, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; + + // Retrieves information about an HDF5 object, given its index. + void getInfo(const char* grp_name, H5_index_t idx_type, + H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo, + unsigned fields = H5O_INFO_BASIC, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; + void getInfo(const H5std_string& grp_name, H5_index_t idx_type, + H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo, + unsigned fields = H5O_INFO_BASIC, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const; // Gets the name of this HDF5 object, i.e., Group, DataSet, or // DataType. |