summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Object.h
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2008-07-02 14:44:57 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2008-07-02 14:44:57 (GMT)
commitd9533d055c7f306e66e5f972068c77c939d6fc16 (patch)
treeaf5d0f7fc67f008e2f718c6913ab3f7baf777abe /c++/src/H5Object.h
parent0e1432a18f999074e48e455aad6ee61c93f27ed1 (diff)
downloadhdf5-d9533d055c7f306e66e5f972068c77c939d6fc16.zip
hdf5-d9533d055c7f306e66e5f972068c77c939d6fc16.tar.gz
hdf5-d9533d055c7f306e66e5f972068c77c939d6fc16.tar.bz2
[svn-r15308] 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. 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.h29
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 */