diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2001-03-27 02:46:53 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2001-03-27 02:46:53 (GMT) |
commit | 2d79c4652dcce93f04c73da71ff5e1b2cca6d5ec (patch) | |
tree | f245efdd37fa485aeda821f031245f9689c29b1d /c++/src/H5DataSpace.h | |
parent | b9a636874a182824a8be2847c4f2f4ae1a0af555 (diff) | |
download | hdf5-2d79c4652dcce93f04c73da71ff5e1b2cca6d5ec.zip hdf5-2d79c4652dcce93f04c73da71ff5e1b2cca6d5ec.tar.gz hdf5-2d79c4652dcce93f04c73da71ff5e1b2cca6d5ec.tar.bz2 |
[svn-r3720] Purpose: Bug fixes and code clean up - 1.4 branch
Description and Solution:
- Predefined type objects become outdated when the application calls
H5close and then H5open to use the library again.
Solution:
+ Reimplemented PredType using enum type to obtain up-to-date
values for predefined types, i.e. H5T_xxx_yyy's, when they
are used.
+ Added to PredType its own version of getId() to return the
appropriate predefined type id according to the enum value.
+ Made IdComponent::getId() a virtual function
- Since Albert already fixed the "multiply defined RcsId" problem,
removed the now become unnessary "#undef RCSID" from H5Include.h
- Added a check for func_name != NULL in one of the Exception
constructors because seg. fault. might occur in some situations.
- It is more convenient to make a copy of a datatype, dataspace,
or property list by using assignment operator
Solution:
+ Added assignment operator to DataType, DataSpace, and
PropList so that they will invoke H5Tcopy, H5Scopy,
and H5Pcopy, respectively, instead of just simply
copying the data members as for other classes. So,
now a type, space, or property list can be copied by
either :
mytype = original_type, or
mytype.copy(original_type)
Note that copy constructors are still just copying the
data members.
+ Added an assignment operator to DataType that takes a
predefined type.
+ Made IdComponent::operator= a virtual function
Platforms tested:
arabica (sparc-sun-solaris 2.7)
Diffstat (limited to 'c++/src/H5DataSpace.h')
-rw-r--r-- | c++/src/H5DataSpace.h | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h index 8c3471f..67f4537 100644 --- a/c++/src/H5DataSpace.h +++ b/c++/src/H5DataSpace.h @@ -20,64 +20,67 @@ class DataSpace : public IdComponent { // Makes copy of an existing dataspace. void copy( const DataSpace& like_space ); // H5Scopy + // Assignment operator + virtual DataSpace& operator=( const DataSpace& rhs ); + // Determines if this dataspace is a simple one. - bool isSimple () const; + bool isSimple() const; // Sets the offset of this simple dataspace. - void offsetSimple ( const hssize_t* offset ) const; + void offsetSimple( const hssize_t* offset ) const; // Retrieves dataspace dimension size and maximum size. - int getSimpleExtentDims ( hsize_t *dims, hsize_t *maxdims = NULL ) const; + int getSimpleExtentDims( hsize_t *dims, hsize_t *maxdims = NULL ) const; // Gets the dimensionality of this dataspace. - int getSimpleExtentNdims () const; + int getSimpleExtentNdims() const; // Gets the number of elements in this dataspace. // 12/05/00 - changed return type to hssize_t from hsize_t - C API - hssize_t getSimpleExtentNpoints () const; + hssize_t getSimpleExtentNpoints() const; // Gets the current class of this dataspace. - H5S_class_t getSimpleExtentType () const; + H5S_class_t getSimpleExtentType() const; // Copies the extent of this dataspace. - void extentCopy ( DataSpace& dest_space ) const; + 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; + void setExtentNone() const; // Gets the number of elements in this dataspace selection. - hssize_t getSelectNpoints () const; + hssize_t getSelectNpoints() const; // Get number of hyperslab blocks. - hssize_t getSelectHyperNblocks () const; + 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; + hssize_t getSelectElemNpoints() const; // Retrieves the list of element points currently selected. - void getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints, hsize_t *buf ) const; + 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; + 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; + void selectElements( H5S_seloper_t op, const size_t num_elements, const hssize_t *coord[ ] ) const; // Selects the entire dataspace. - void selectAll () const; + void selectAll() const; // Resets the selection region to include no elements. - void selectNone () const; + void selectNone() const; // Verifies that the selection is within the extent of the dataspace. - bool selectValid () const; + 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; |