summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c++/src/H5PropList.cpp24
-rw-r--r--c++/src/H5PropList.h4
2 files changed, 24 insertions, 4 deletions
diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp
index c489983..7adfda8 100644
--- a/c++/src/H5PropList.cpp
+++ b/c++/src/H5PropList.cpp
@@ -77,15 +77,31 @@ PropList& PropList::operator=( const PropList& rhs )
return(*this);
}
+// Copies a property from one list or class to another
+void PropList::copyProp( PropList& dest, PropList& src, const string& name )
+{
+ copyProp( dest, src, name.c_str());
+}
+
+// Copies a property from one list or class to another
+void PropList::copyProp( PropList& dest, PropList& src, const char *name )
+{
+ hid_t dst_id = dest.getId();
+ hid_t src_id = src.getId();
+ herr_t ret_value = H5Pcopy_prop(dst_id, src_id, name);
+ if( ret_value < 0 )
+ {
+ throw PropListIException("PropList::copyProp", "H5Pcopy_prop failed");
+ }
+
+}
+
// Closes the property list if it is not a default one
void PropList::p_close() const
{
if( id != H5P_NO_CLASS ) // not a constant, should call H5Pclose
{
- herr_t ret_value;
-
- ret_value = H5Pclose( id );
-
+ herr_t ret_value = H5Pclose( id );
if( ret_value < 0 )
{
throw PropListIException(NULL, "property list close failed" );
diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h
index fecadcd..186bf22 100644
--- a/c++/src/H5PropList.h
+++ b/c++/src/H5PropList.h
@@ -28,6 +28,10 @@ class __DLLCPP__ PropList : public IdComponent {
// Make a copy of the given property list using assignment statement
PropList& operator=( const PropList& rhs );
+ // Copies a property from one property list or property class to another
+ void copyProp( PropList& dest, PropList& src, const string& name);
+ void copyProp( PropList& dest, PropList& src, const char* name);
+
// Gets the class of this property list, i.e. H5P_FILE_CREATE,
// H5P_FILE_ACCESS, ...
hid_t getClass() const;