summaryrefslogtreecommitdiffstats
path: root/c++/src/H5DataSpace.h
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2000-11-14 21:30:12 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2000-11-14 21:30:12 (GMT)
commit92041a68656c59813619ae1f26ed211b7f028e86 (patch)
treeaaa3256c9a9f0adde21570eac9254f7ce00450b1 /c++/src/H5DataSpace.h
parent36acd5381e3977164e0d6d666f8ce97cc53f9387 (diff)
downloadhdf5-92041a68656c59813619ae1f26ed211b7f028e86.zip
hdf5-92041a68656c59813619ae1f26ed211b7f028e86.tar.gz
hdf5-92041a68656c59813619ae1f26ed211b7f028e86.tar.bz2
[svn-r2897] Purpose:
C++ API for 1.3.x branch Description: The *.C and *.h files named different than those in 1.2.x. They are in the form: 'H5' + classname, or just classname if the classname is already prefixed with 'H5' to avoid ambiguity in documentation context. This version has several hidden bugs fixed and an improvement on the reference counting approach. The classes and their inheritance structure are listed below: --------------------------------------- H5Library Exception RefCounter IdComponent H5File DataSpace H5Object Group AbstractDs DataSet Attribute DataType PredType EnumType CompType AtomType StrType IntType FloatType PropList FileCreatPropList FileAccPropList DSetCreatPropList DSetMemXferPropList --------------------------------------- IdComponent uses RefCounter to keep track of opened objects so proper termination of HDF5 objects can be maintained. Each class has a .h file containing the class declaration and a .C file containing its definition. In addition to the classes files, the following files do not have class information: - H5Cpp.h: header file to be included in user's application - H5Idtemplates.h: contains a template function used by several classes - H5Classes.h: contains forward class declarations - H5CommonFG.*: contains common code used by classes H5File and Group - H5Include.h: contains the hdf5.h header file and the #undef RCSID to work around the problem: multiple defined RcsId - H5Alltypes.h: simply serves as a container to hold the header files of all datatypes to simplify the header file inclusion Platforms: Solaris (arabica) and Linux
Diffstat (limited to 'c++/src/H5DataSpace.h')
-rw-r--r--c++/src/H5DataSpace.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h
new file mode 100644
index 0000000..ddbb29c
--- /dev/null
+++ b/c++/src/H5DataSpace.h
@@ -0,0 +1,110 @@
+#ifndef _H5DataSpace_H
+#define _H5DataSpace_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+class DataSpace : public IdComponent {
+ public:
+ // Default DataSpace objects
+ static const DataSpace ALL;
+
+ // Default constructor
+ DataSpace();
+
+ // Creates a dataspace object given the space type
+ DataSpace( H5S_class_t type ); // H5Screate
+
+ // Assignement operator
+ //DataSpace& operator=( const DataSpace& rhs );
+
+ // Creates a simple dataspace
+ DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims = NULL); // H5Screate_simple
+
+ // Copy constructor: makes a copy of the original DataSpace object.
+ DataSpace( const DataSpace& original );
+
+ // Makes copy of an existing dataspace.
+ void copy( const DataSpace& like_space ); // H5Scopy
+
+ // Gets value of member id of this dataspace
+ //hid_t getId () const;
+
+ // Sets value for member id of this dataspace.
+ //void setId( hid_t new_space_id );
+
+ // Determines if this dataspace is a simple one.
+ bool isSimple () const;
+
+ // Sets the offset of this simple dataspace.
+ void offsetSimple ( const hssize_t* offset ) const;
+
+ // Retrieves dataspace dimension size and maximum size.
+ int getSimpleExtentDims ( hsize_t *dims, hsize_t *maxdims = NULL ) const;
+
+ // Gets the dimensionality of this dataspace.
+ int getSimpleExtentNdims () const;
+
+ // Gets the number of elements in this dataspace.
+ hsize_t getSimpleExtentNpoints () const;
+
+ // Gets the current class of this dataspace.
+ H5S_class_t getSimpleExtentType () const;
+
+ // Copies the extent of this dataspace.
+ void extentCopy ( DataSpace& dest_space ) const;
+
+ // Sets or resets the size of this dataspace.
+ void setExtentSimple( int rank, const hsize_t *current_size, const hsize_t *maximum_size = NULL ) const;
+
+ // Removes the extent from this dataspace.
+ void setExtentNone () const;
+
+ // Gets the number of elements in this dataspace selection.
+ hssize_t getSelectNpoints () const;
+
+ // Get number of hyperslab blocks.
+ hssize_t getSelectHyperNblocks () const;
+
+ // Gets the list of hyperslab blocks currently selected.
+ void getSelectHyperBlocklist( hsize_t startblock, hsize_t numblocks, hsize_t *buf ) const;
+
+ // Gets the number of element points in the current selection.
+ hssize_t getSelectElemNpoints () const;
+
+ // Retrieves the list of element points currently selected.
+ void getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints, hsize_t *buf ) const;
+
+ // Gets the bounding box containing the current selection.
+ void getSelectBounds ( hsize_t* start, hsize_t* end ) const;
+
+ // Selects array elements to be included in the selection for
+ // this dataspace.
+ void selectElements ( H5S_seloper_t op, const size_t num_elements, const hssize_t *coord[ ] ) const;
+
+ // Selects the entire dataspace.
+ void selectAll () const;
+
+ // Resets the selection region to include no elements.
+ void selectNone () const;
+
+ // Verifies that the selection is within the extent of the dataspace.
+ bool selectValid () const;
+
+ // Selects a hyperslab region to add to the current selected region.
+ void selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hssize_t *start, const hsize_t *stride = NULL, const hsize_t *block = NULL ) const;
+
+ // Uses an existing dataspace identifier to make a DataSpace object
+ // or uses a default id to create a default dataspace object
+ DataSpace( const hid_t space_id );
+
+ // Used by the API to close the dataspace
+ void p_close() const;
+
+ virtual ~DataSpace();
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif