diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2008-05-20 20:24:44 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2008-05-20 20:24:44 (GMT) |
commit | 988e907b113c992cd2878705a5b98b499a4ccf41 (patch) | |
tree | 31b669eff3d8afade2cc50fa621d5559bb4c945c /c++/src/H5Object.h | |
parent | 980d1837908aa700efcf7edc0be62a9fc207c6ed (diff) | |
download | hdf5-988e907b113c992cd2878705a5b98b499a4ccf41.zip hdf5-988e907b113c992cd2878705a5b98b499a4ccf41.tar.gz hdf5-988e907b113c992cd2878705a5b98b499a4ccf41.tar.bz2 |
[svn-r15046] Purpose: Fixed bugs
Description:
The class hierarchy was revised to address the problem reported in
bugzilla #1068. Classes AbstractDS and Attribute are moved out of
H5Object. Class Attribute now multiply inherits from IdComponent and
AbstractDs and class DataSet from H5Object and AbstractDs.
In addition, data member IdComponent::id was moved into subclasses:
Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.
Also fixed bugzilla 1045: revised Attribute::write and Attribute::read
wrappers to handle memory allocation/deallocation properly. (bugzilla 1045)
Platforms tested:
SunOS 5.10 (linew)
Linux 2.6 (kagiso)
FreeBSD (duty)
Diffstat (limited to 'c++/src/H5Object.h')
-rw-r--r-- | c++/src/H5Object.h | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index 77de529..49655a1 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -20,8 +20,7 @@ #include "H5Classes.h" // constains forward class declarations // H5Object is a baseclass. It has these subclasses: -// Group, AbstractDs, and DataType. -// AbstractDs, in turn, has subclasses DataSet and Attribute. +// Group, DataSet, and DataType. // DataType, in turn, has several specific datatypes as subclasses. #ifndef H5_NO_NAMESPACE @@ -80,6 +79,17 @@ class H5_DLLCPP H5Object : public IdComponent { void renameAttr(const char* oldname, const char* newname) const; void renameAttr(const H5std_string& oldname, const H5std_string& newname) const; + // Creates a reference to a named Hdf5 object or to a dataset region + // in this object. + void reference(void* ref, const char* name, const DataSpace& dataspace, + H5R_type_t ref_type = H5R_DATASET_REGION) const; + void reference(void* ref, const char* name) const; + void reference(void* ref, const H5std_string& name) const; + + // Open a referenced HDF5 object. + void dereference(H5File& h5file, void* ref); + void dereference(H5Object& obj, void* ref); + // Copy constructor: makes copy of an H5Object object. H5Object(const H5Object& original); @@ -93,6 +103,21 @@ class H5_DLLCPP H5Object : public IdComponent { // Creates a copy of an existing object giving the object id H5Object( const hid_t object_id ); + + // Gets the id of the H5 file in which the given object is located. + hid_t p_get_file_id(); + + // Creates a reference to an HDF5 object or a dataset region. + void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; + +#ifndef H5_NO_DEPRECATED_SYMBOLS + // Retrieves the type of object that an object reference points to. + H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const; +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + + // Retrieves a dataspace with the region pointed to selected. + hid_t p_get_region(void *ref, H5R_type_t ref_type) const; + #endif // DOXYGEN_SHOULD_SKIP_THIS }; /* end class H5Object */ |