summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Object.h
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src/H5Object.h')
-rw-r--r--c++/src/H5Object.h95
1 files changed, 55 insertions, 40 deletions
diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h
index cbeefc3..8d9cb45 100644
--- a/c++/src/H5Object.h
+++ b/c++/src/H5Object.h
@@ -6,57 +6,72 @@
* *
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from help@hdfgroup.org. *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef __H5Object_H
#define __H5Object_H
-#include "H5Location.h"
-#include "H5Classes.h" // constains forward class declarations
-
-// H5Object is a baseclass. It has these subclasses:
-// Group, DataSet, and DataType.
-// DataType, in turn, has several specific datatypes as subclasses.
-// Modification:
-// Sept 18, 2012: Added class H5Location in between IdComponent and
-// H5Object. An H5File now inherits from H5Location. All HDF5
-// wrappers in H5Object are moved up to H5Location. H5Object
-// is left mostly empty for future wrappers that are only for
-// group, dataset, and named datatype. Note that the reason for
-// adding H5Location instead of simply moving H5File to be under
-// H5Object is H5File is not an HDF5 object, and renaming H5Object
-// to H5Location will risk breaking user applications.
-// -BMR
-// Apr 2, 2014: Added wrapper getObjName for H5Iget_name
namespace H5 {
/*! \class H5Object
\brief Class H5Object is a bridge between H5Location and DataSet, DataType,
and Group.
- All the wrappers in H5Object were moved to H5Location.
+ Modification:
+ Sept 18, 2012: Added class H5Location in between IdComponent and
+ H5Object. An H5File now inherits from H5Location. All HDF5
+ wrappers in H5Object are moved up to H5Location. H5Object
+ is left mostly empty for future wrappers that are only for
+ group, dataset, and named datatype. Note that the reason for
+ adding H5Location instead of simply moving H5File to be under
+ H5Object is H5File is not an HDF5 object, and renaming H5Object
+ to H5Location will risk breaking user applications. -BMR
+ Apr 2, 2014: Added wrapper getObjName for H5Iget_name -BMR
*/
+// Inheritance: H5Location -> IdComponent
class H5_DLLCPP H5Object : public H5Location {
public:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
- // Gets the name of this HDF5 object, i.e., Group, DataSet, or
- // DataType. These should have const but are retiring anyway.
- ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
- ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
- H5std_string getObjName() const;
+ // Creates an attribute for the specified object
+ // PropList is currently not used, so always be default.
+ Attribute createAttribute(const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT) const;
+ Attribute createAttribute(const H5std_string& name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT) const;
+
+ // Given its name, opens the attribute that belongs to this object.
+ Attribute openAttribute(const char* name) const;
+ Attribute openAttribute(const H5std_string& name) const;
+
+ // Given its index, opens the attribute that belongs to this object.
+ Attribute openAttribute(const unsigned int idx) const;
+
+ // Checks whether the named attribute exists for this object.
+ bool attrExists(const char* name) const;
+ bool attrExists(const H5std_string& name) const;
- // Noop destructor.
- virtual ~H5Object();
+ // Renames the named attribute of this object to a new name.
+ void renameAttr(const char* oldname, const char* newname) const;
+ void renameAttr(const H5std_string& oldname, const H5std_string& newname) const;
+
+ // Removes the named attribute from this object.
+ void removeAttr(const char* name) const;
+ void removeAttr(const H5std_string& name) const;
+
+ // Gets the name of this HDF5 object, i.e., Group, DataSet, or
+ // DataType.
+ ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
+ ssize_t getObjName(H5std_string& obj_name, size_t len = 0) const;
+ H5std_string getObjName() const;
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ // Noop destructor.
+ virtual ~H5Object();
protected:
- // Default constructor
- H5Object();
+ // Default constructor
+ H5Object();
// *** Deprecation warning ***
// The following two constructors are no longer appropriate after the
@@ -65,15 +80,15 @@ class H5_DLLCPP H5Object : public H5Location {
// other will be removed from 1.10 release, and then from 1.8 if its
// removal does not raise any problems in two 1.10 releases.
- // Creates a copy of an existing object giving the object id
- H5Object( const hid_t object_id );
+ // Creates a copy of an existing object giving the object id
+ H5Object(const hid_t object_id);
- // Copy constructor: makes copy of an H5Object object.
- // H5Object(const H5Object& original);
+ // Copy constructor: makes copy of an H5Object object.
+ // H5Object(const H5Object& original);
#endif // DOXYGEN_SHOULD_SKIP_THIS
-}; /* end class H5Object */
+}; // end of H5Object
+} // namespace H5
-}
#endif // __H5Object_H