HDF5 C++ API Reference Manual

 

 

H5DataSpace.h

Go to the documentation of this file.
00001 // C++ informative line for the emacs editor: -*- C++ -*-
00002 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00003  * Copyright by The HDF Group.                                               *
00004  * Copyright by the Board of Trustees of the University of Illinois.         *
00005  * All rights reserved.                                                      *
00006  *                                                                           *
00007  * This file is part of HDF5.  The full HDF5 copyright notice, including     *
00008  * terms governing use, modification, and redistribution, is contained in    *
00009  * the files COPYING and Copyright.html.  COPYING can be found at the root   *
00010  * of the source code distribution tree; Copyright.html can be found at the  *
00011  * root level of an installed copy of the electronic HDF5 document set and   *
00012  * is linked from the top-level documents page.  It can also be found at     *
00013  * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
00014  * access to either file, you may request a copy from [email protected].     *
00015  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00016 
00017 #ifndef _H5DataSpace_H
00018 #define _H5DataSpace_H
00019 
00020 #ifndef H5_NO_NAMESPACE
00021 namespace H5 {
00022 #endif
00023 
00024 class H5_DLLCPP DataSpace : public IdComponent {
00025    public:
00026         // Default DataSpace objects
00027         static const DataSpace ALL;
00028 
00029         // Creates a dataspace object given the space type
00030         DataSpace(H5S_class_t type = H5S_SCALAR);
00031 
00032         // Creates a simple dataspace
00033         DataSpace(int rank, const hsize_t * dims, const hsize_t * maxdims = NULL);
00034 
00035         // Assignment operator
00036         DataSpace& operator=( const DataSpace& rhs );
00037 
00038         // Closes this dataspace.
00039         virtual void close();
00040 
00041         // Makes copy of an existing dataspace.
00042         void copy(const DataSpace& like_space);
00043 
00044         // Copies the extent of this dataspace.
00045         void extentCopy( DataSpace& dest_space ) const;
00046 
00047         // Gets the bounding box containing the current selection.
00048         void getSelectBounds( hsize_t* start, hsize_t* end ) const;
00049 
00050         // Gets the number of element points in the current selection.
00051         hssize_t getSelectElemNpoints() const;
00052 
00053         // Retrieves the list of element points currently selected.
00054         void getSelectElemPointlist( hsize_t startpoint, hsize_t numpoints, hsize_t *buf ) const;
00055 
00056         // Gets the list of hyperslab blocks currently selected.
00057         void getSelectHyperBlocklist( hsize_t startblock, hsize_t numblocks, hsize_t *buf ) const;
00058 
00059         // Get number of hyperslab blocks.
00060         hssize_t getSelectHyperNblocks() const;
00061 
00062         // Gets the number of elements in this dataspace selection.
00063         hssize_t getSelectNpoints() const;
00064 
00065         // Retrieves dataspace dimension size and maximum size.
00066         int getSimpleExtentDims( hsize_t *dims, hsize_t *maxdims = NULL ) const;
00067 
00068         // Gets the dimensionality of this dataspace.
00069         int getSimpleExtentNdims() const;
00070 
00071         // Gets the number of elements in this dataspace.
00072         // 12/05/00 - changed return type to hssize_t from hsize_t - C API
00073         hssize_t getSimpleExtentNpoints() const;
00074 
00075         // Gets the current class of this dataspace.
00076         H5S_class_t getSimpleExtentType() const;
00077 
00078         // Determines if this dataspace is a simple one.
00079         bool isSimple() const;
00080 
00081         // Sets the offset of this simple dataspace.
00082         void offsetSimple( const hssize_t* offset ) const;
00083 
00084         // Selects the entire dataspace.
00085         void selectAll() const;
00086 
00087         // Selects array elements to be included in the selection for
00088         // this dataspace.
00089         void selectElements( H5S_seloper_t op, const size_t num_elements, const hsize_t *coord) const;
00090 
00091         // Selects a hyperslab region to add to the current selected region.
00092         void selectHyperslab( H5S_seloper_t op, const hsize_t *count, const hsize_t *start, const hsize_t *stride = NULL, const hsize_t *block = NULL ) const;
00093 
00094         // Resets the selection region to include no elements.
00095         void selectNone() const;
00096 
00097         // Verifies that the selection is within the extent of the dataspace.
00098         bool selectValid() const;
00099 
00100         // Removes the extent from this dataspace.
00101         void setExtentNone() const;
00102 
00103         // Sets or resets the size of this dataspace.
00104         void setExtentSimple( int rank, const hsize_t *current_size, const hsize_t *maximum_size = NULL ) const;
00105 
00107         virtual H5std_string fromClass () const { return("DataSpace"); }
00108 
00109         // Creates a DataSpace object using an existing dataspace id.
00110         DataSpace(const hid_t space_id);
00111 
00112         // Copy constructor: makes a copy of the original DataSpace object.
00113         DataSpace(const DataSpace& original);
00114 
00115         // Gets the dataspace id.
00116         virtual hid_t getId() const;
00117 
00118         // Destructor: properly terminates access to this dataspace.
00119         virtual ~DataSpace();
00120 
00121    private:
00122         hid_t id;       // HDF5 dataspace id
00123 
00124    protected:
00125         // Sets the dataspace id.
00126         virtual void p_setId(const hid_t new_id);
00127 };
00128 #ifndef H5_NO_NAMESPACE
00129 }
00130 #endif
00131 #endif

Generated on Tue May 10 09:27:56 2011 by  doxygen 1.4.7