diff options
Diffstat (limited to 'c++')
-rw-r--r-- | c++/src/H5DcreatProp.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5DxferProp.cpp | 4 | ||||
-rw-r--r-- | c++/src/H5FaccProp.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5FcreatProp.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5IdComponent.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5PropList.cpp | 42 | ||||
-rw-r--r-- | c++/src/H5PropList.h | 11 |
7 files changed, 27 insertions, 38 deletions
diff --git a/c++/src/H5DcreatProp.cpp b/c++/src/H5DcreatProp.cpp index 4f3d2e4..ec5a10a 100644 --- a/c++/src/H5DcreatProp.cpp +++ b/c++/src/H5DcreatProp.cpp @@ -13,7 +13,7 @@ namespace H5 { #endif -const DSetCreatPropList DSetCreatPropList::DEFAULT( H5P_DEFAULT ); +const DSetCreatPropList DSetCreatPropList::DEFAULT( H5P_NO_CLASS ); // Copy constructor: makes a copy of the original DSetCreatPropList object; DSetCreatPropList::DSetCreatPropList( const DSetCreatPropList& orig ) : PropList( orig ) {} diff --git a/c++/src/H5DxferProp.cpp b/c++/src/H5DxferProp.cpp index 389db89..96444aa 100644 --- a/c++/src/H5DxferProp.cpp +++ b/c++/src/H5DxferProp.cpp @@ -11,10 +11,10 @@ namespace H5 { #endif -const DSetMemXferPropList DSetMemXferPropList::DEFAULT( H5P_DEFAULT ); +const DSetMemXferPropList DSetMemXferPropList::DEFAULT( H5P_NO_CLASS ); // Creates a dataset memory and transfer property list -DSetMemXferPropList::DSetMemXferPropList() : PropList( H5P_DATASET_XFER_NEW ) {} +DSetMemXferPropList::DSetMemXferPropList() : PropList( H5P_DATASET_XFER) {} // Copy constructor: makes a copy of the original DSetMemXferPropList object; DSetMemXferPropList::DSetMemXferPropList( const DSetMemXferPropList& orig ) : PropList( orig ) {} diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp index 4eae889..3ade17e 100644 --- a/c++/src/H5FaccProp.cpp +++ b/c++/src/H5FaccProp.cpp @@ -11,7 +11,7 @@ namespace H5 { #endif -const FileAccPropList FileAccPropList::DEFAULT( H5P_DEFAULT ); +const FileAccPropList FileAccPropList::DEFAULT( H5P_NO_CLASS ); // Creates a file access property list FileAccPropList::FileAccPropList() : PropList( H5P_FILE_ACCESS ) {} diff --git a/c++/src/H5FcreatProp.cpp b/c++/src/H5FcreatProp.cpp index d511595..3d4b21f 100644 --- a/c++/src/H5FcreatProp.cpp +++ b/c++/src/H5FcreatProp.cpp @@ -11,7 +11,7 @@ namespace H5 { #endif -const FileCreatPropList FileCreatPropList::DEFAULT( H5P_DEFAULT ); +const FileCreatPropList FileCreatPropList::DEFAULT( H5P_NO_CLASS ); // Creates a file create property list FileCreatPropList::FileCreatPropList() : PropList( H5P_FILE_CREATE ) {} diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp index d7ba7c4..1275ee5 100644 --- a/c++/src/H5IdComponent.cpp +++ b/c++/src/H5IdComponent.cpp @@ -12,7 +12,7 @@ namespace H5 { #endif // Default constructor - private -IdComponent::IdComponent() : id( 0 ) +IdComponent::IdComponent() : id( -1 ) { // starts counting object references ref_count = new RefCounter; diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp index 985d895..3982288 100644 --- a/c++/src/H5PropList.cpp +++ b/c++/src/H5PropList.cpp @@ -11,23 +11,12 @@ namespace H5 { #endif -const PropList PropList::DEFAULT( H5P_DEFAULT ); +const PropList PropList::DEFAULT( H5P_NO_CLASS ); // Default constructor - set id to 0 by default here but may be set // to a valid one, if any, by a subclass constructor. PropList::PropList() : IdComponent( 0 ) {} -// Creates a new property of specified type -PropList::PropList( H5P_class_t type ) : IdComponent( 0 ) -{ - // call C routine to create the new property - id = H5Pcreate(type ); - if( id <= 0 ) - { - throw PropListIException("PropList constructor", "H5Pcreate failed"); - } -} - // Copy constructor: makes a copy of the original object PropList::PropList( const PropList& original ) : IdComponent( original ) {} @@ -39,18 +28,25 @@ Description: the identifier still has reference counter; the p_close function will take care of not to call H5Pclose on the default id. */ -PropList::PropList( const hid_t plist_id ) : IdComponent() +PropList::PropList( const hid_t plist_id ) : IdComponent(0) { - if (H5I_GENPROP_CLS == H5Iget_type(plist_id)) { + if (H5I_GENPROP_CLS == H5Iget_type(plist_id) + || plist_id==H5P_FILE_CREATE + || plist_id==H5P_FILE_ACCESS + || plist_id==H5P_DATASET_CREATE + || plist_id==H5P_MOUNT) { // call C routine to create the new property - id = H5Pcreate_list(plist_id); + id = H5Pcreate(plist_id); if( id <= 0 ) { - throw PropListIException("PropList constructor", "H5Pcreate_list failed"); + throw PropListIException("PropList constructor", "H5Pcreate failed"); } } else { - id=plist_id; + if(plist_id==H5P_NO_CLASS) + id=H5P_DEFAULT; + else + id=plist_id; } } @@ -88,15 +84,11 @@ PropList& PropList::operator=( const PropList& rhs ) // Closes the property list if it is not a default one void PropList::p_close() const { - if( id != H5P_DEFAULT ) // not a constant, should call H5Pclose + if( id != H5P_NO_CLASS ) // not a constant, should call H5Pclose { herr_t ret_value; - if (H5I_GENPROP_LST == H5Iget_type(id)) { - ret_value = H5Pclose_list( id ); - } else { - ret_value = H5Pclose( id ); - } + ret_value = H5Pclose( id ); if( ret_value < 0 ) { @@ -106,9 +98,9 @@ void PropList::p_close() const } // Returns the class of this property list, i.e. H5P_FILE_CREATE... -H5P_class_t PropList::getClass() const +hid_t PropList::getClass() const { - H5P_class_t plist_class = H5Pget_class( id ); + hid_t plist_class = H5Pget_class( id ); if( plist_class == H5P_NO_CLASS ) { throw PropListIException("PropList::getClass", diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h index 037b0d8..c800ace 100644 --- a/c++/src/H5PropList.h +++ b/c++/src/H5PropList.h @@ -11,8 +11,9 @@ class PropList : public IdComponent { // Default property list static const PropList DEFAULT; - // Creates a property list given the property list type. - PropList( H5P_class_t type ); + // Creates a property list of a given type or creates a copy of an + // existing property list giving the property list id + PropList( const hid_t plist_id ); // Default constructor: creates a PropList object - this object // does not represent any property list yet. @@ -29,11 +30,7 @@ class PropList : public IdComponent { // Gets the class of this property list, i.e. H5P_FILE_CREATE, // H5P_FILE_ACCESS, ... - H5P_class_t getClass() const; - - // Creates a default property list or creates a copy of an - // existing property list giving the property list id - PropList( const hid_t plist_id ); + hid_t getClass() const; // Used by the API to close the property list void p_close() const; |