summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Group.h
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src/H5Group.h')
-rw-r--r--c++/src/H5Group.h115
1 files changed, 115 insertions, 0 deletions
diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h
new file mode 100644
index 0000000..6246aa4
--- /dev/null
+++ b/c++/src/H5Group.h
@@ -0,0 +1,115 @@
+#ifndef _H5Group_H
+#define _H5Group_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+class Group : public H5Object {
+ public:
+ // default constructor
+ Group();
+
+ // Copy constructor: makes a copy of the original object
+ Group( const Group& original );
+
+ // Creates a group in this group
+ Group createGroup( const string& name, size_t size_hint = 0 );
+ Group createGroup( const char* name, size_t size_hint = 0 );
+
+ // Opens an existing group in this group
+ Group openGroup( const string& name );
+ Group openGroup( const char* name );
+
+ // Creates a dataset in this group
+ DataSet createDataSet( const string& name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT );
+ DataSet createDataSet( const char* name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist = DSetCreatPropList::DEFAULT );
+
+ // Opens a dataset in this group
+ DataSet openDataSet( const string& name );
+ DataSet openDataSet( const char* name );
+
+ // Opens a generic named datatype in this group.
+ DataType openDataType( const string& name ) const;
+ DataType openDataType( const char* name ) const;
+
+ // Opens a named enumeration datatype in this group.
+ EnumType openEnumType( const string& name ) const;
+ EnumType openEnumType( const char* name ) const;
+
+ // Opens a named compound datatype in this group.
+ CompType openCompType( const string& name ) const;
+ CompType openCompType( const char* name ) const;
+
+ // Opens a named integer datatype in this group.
+ IntType openIntType( const string& name ) const;
+ IntType openIntType( const char* name ) const;
+
+ // Opens a named floating-point datatype in this group.
+ FloatType openFloatType( const string& name ) const;
+ FloatType openFloatType( const char* name ) const;
+
+ // Opens a named string datatype in this group.
+ StrType openStrType( const string& name ) const;
+ StrType openStrType( const char* name ) const;
+
+ // Creates a link from new_name to current_name in this group.
+ void link( H5G_link_t link_type, const string& curr_name, const string& new_name );
+ void link( H5G_link_t link_type, const char* curr_name, const char* new_name );
+
+ // Removes a name linked to this group.
+ void unlink( const string& name );
+ void unlink( const char* name );
+
+ // Iterates over the elements of this group - not implemented in
+ // C++ style yet
+ int iterateElems( const string& name, int *idx, H5G_iterate_t op, void *op_data );
+ int iterateElems( const char* name, int *idx, H5G_iterate_t op, void *op_data );
+
+ // Renames an object within this group.
+ void move( const string& src, const string& dst );
+ void move( const char* src, const char* dst );
+
+ // Retrieves information about the named object.
+ void getObjinfo( const string& name, hbool_t follow_link, H5G_stat_t& statbuf );
+ void getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& statbuf );
+
+ // Returns the name of the object that the symbolic link points to.
+ string getLinkval( const string& name, size_t size );
+ string getLinkval( const char* name, size_t size );
+
+ // Sets comment for an object specified by its name.
+ void setComment( const string& name, const string& comment );
+ void setComment( const char* name, const char* comment );
+
+ // Gets the comment of an object specified by its name.
+ string getComment( const string& name, size_t bufsize );
+ string getComment( const char* name, size_t bufsize );
+
+ // Mounts the file 'child' onto this group.
+ void mount( const string& name, H5File& child, PropList& plist);
+ void mount( const char* name, H5File& child, PropList& plist);
+
+ // Unmounts the file named 'name' from this parent group.
+ void unmount( const string& name );
+ void unmount( const char* name );
+
+ // Used by the API to appropriately close a group
+ void p_close() const;
+
+ virtual ~Group();
+
+ // Creates a copy of an existing Group using its id
+ // (used only by template functions in FGtemplates.h
+ // to return a Group; will not be published; maybe, use friend???)
+ Group( const hid_t group_id );
+
+ private:
+ // Common code for member functions openXxxType - templates, maybe???
+ hid_t p_openDataType( const char* name ) const;
+
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif