summaryrefslogtreecommitdiffstats
path: root/c++/src
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src')
-rw-r--r--c++/src/H5DcreatProp.cpp2
-rw-r--r--c++/src/H5DxferProp.cpp4
-rw-r--r--c++/src/H5FaccProp.cpp2
-rw-r--r--c++/src/H5FcreatProp.cpp2
-rw-r--r--c++/src/H5IdComponent.cpp2
-rw-r--r--c++/src/H5PropList.cpp42
-rw-r--r--c++/src/H5PropList.h11
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;