[svn-r22836] Purpose: Fix bug HDFFV-533 and add other missing functions

Description:
    In this bug, H5File doesn't have the ability to create attribute.  The
    following changes will provide that functionality and several others that
    were also missing:
    - Added an abstract class H5Location in between IdComponent and H5Object.
    - New class structure of IdComponent, H5Location, H5Object, H5File
                                IdComponent
                                     |
                                H5Location
                                /        \
                        H5Object        H5File
    - Wrappers in H5Object were moved to H5Location because the related C
      functions take either file, group, dataset, or named datatype ID.
    - Added wrapper for H5Rget_obj_type2
    - Added tests for file attributes and H5Rget_obj_type2 wrapper
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (koala)
    SunOS 5.10 (linew)
This commit is contained in:
Binh-Minh Ribler
2012-09-27 18:26:16 -05:00
parent e488529430
commit 5fcec401bd
23 changed files with 1148 additions and 924 deletions

View File

@@ -644,33 +644,6 @@ void DataSet::fillMemBuf(void *buf, DataType& buf_type, DataSpace& space)
}
}
#ifndef H5_NO_DEPRECATED_SYMBOLS
//--------------------------------------------------------------------------
// Function: DataSet::getObjType
///\brief Retrieves the type of object that an object reference points to.
///\param ref_type - IN: Type of reference to query, valid values are:
/// \li \c H5R_OBJECT - Reference is an object reference.
/// \li \c H5R_DATASET_REGION - Reference is a dataset region reference.
///\param ref - IN: Reference to query
///\return An object type, which can be one of the following:
/// \li \c H5G_LINK (0) - Object is a symbolic link.
/// \li \c H5G_GROUP (1) - Object is a group.
/// \li \c H5G_DATASET (2) - Object is a dataset.
/// \li \c H5G_TYPE (3) - Object is a named datatype
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t DataSet::getObjType(void *ref, H5R_type_t ref_type) const
{
try {
return(p_get_obj_type(ref, ref_type));
}
catch (IdComponentException E) {
throw DataSetIException("DataSet::getObjType", E.getDetailMsg());
}
}
#endif /* H5_NO_DEPRECATED_SYMBOLS */
//--------------------------------------------------------------------------
// Function: DataSet::getRegion
///\brief Retrieves a dataspace with the region pointed to selected.