diff options
Diffstat (limited to 'c++/src')
-rw-r--r-- | c++/src/H5AbstractDs.cpp | 13 | ||||
-rw-r--r-- | c++/src/H5AbstractDs.h | 16 | ||||
-rw-r--r-- | c++/src/H5Attribute.cpp | 10 | ||||
-rw-r--r-- | c++/src/H5DataSet.cpp | 10 | ||||
-rw-r--r-- | c++/src/H5DataSpace.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5DataType.cpp | 2 | ||||
-rw-r--r-- | c++/src/H5Exception.cpp | 48 | ||||
-rw-r--r-- | c++/src/H5File.cpp | 8 | ||||
-rw-r--r-- | c++/src/H5Group.cpp | 10 | ||||
-rw-r--r-- | c++/src/H5IdComponent.cpp | 20 | ||||
-rw-r--r-- | c++/src/H5IdComponent.h | 9 | ||||
-rw-r--r-- | c++/src/H5Location.cpp | 19 | ||||
-rw-r--r-- | c++/src/H5Location.h | 10 | ||||
-rw-r--r-- | c++/src/H5Object.cpp | 29 | ||||
-rw-r--r-- | c++/src/H5Object.h | 13 | ||||
-rw-r--r-- | c++/src/H5PropList.cpp | 2 | ||||
-rw-r--r-- | c++/src/Makefile.in | 2 |
17 files changed, 149 insertions, 74 deletions
diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp index e6cacf9..0e6ac00 100644 --- a/c++/src/H5AbstractDs.cpp +++ b/c++/src/H5AbstractDs.cpp @@ -40,6 +40,12 @@ AbstractDs::AbstractDs(){} // Function: AbstractDs default constructor ///\brief Creates an AbstractDs instance using an existing id. // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- AbstractDs::AbstractDs(const hid_t ds_id){} @@ -47,8 +53,13 @@ AbstractDs::AbstractDs(const hid_t ds_id){} // Function: AbstractDs copy constructor ///\brief Copy constructor: makes a copy of the original AbstractDs object. // Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -AbstractDs::AbstractDs(const AbstractDs& original){} +//-------------------------------------------------------------------------- +// AbstractDs::AbstractDs(const AbstractDs& original){} //-------------------------------------------------------------------------- // Function: AbstractDs::getTypeClass diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h index 01d05b8..8ed7967 100644 --- a/c++/src/H5AbstractDs.h +++ b/c++/src/H5AbstractDs.h @@ -70,9 +70,6 @@ class H5_DLLCPP AbstractDs { ///\brief Returns this class name. virtual H5std_string fromClass() const = 0; - // Copy constructor - AbstractDs( const AbstractDs& original ); - // Destructor virtual ~AbstractDs(); @@ -80,8 +77,17 @@ class H5_DLLCPP AbstractDs { // Default constructor AbstractDs(); - // Constructor that takes an attribute id or a dataset id. - AbstractDs( const hid_t ds_id ); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + + AbstractDs(const hid_t h5_id); + + // Copy constructor + // AbstractDs( const AbstractDs& original ); private: // This member function is implemented by DataSet and Attribute. diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index a9e928d..6b5c753 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -392,10 +392,12 @@ H5std_string Attribute::getName() const //-------------------------------------------------------------------------- H5std_string Attribute::getName(size_t len) const { - H5std_string attr_name; - ssize_t name_size = getName(attr_name, len); - return(attr_name); - // let caller catch exception if any + H5std_string attr_name; + ssize_t name_size = getName(attr_name, len); + if (name_size < 0) + return(""); + else + return(attr_name); } //-------------------------------------------------------------------------- diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp index 6728264..0374d95 100644 --- a/c++/src/H5DataSet.cpp +++ b/c++/src/H5DataSet.cpp @@ -52,7 +52,7 @@ namespace H5 { ///\brief Default constructor: creates a stub DataSet. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {} +DataSet::DataSet() : H5Object(), AbstractDs(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: DataSet overloaded constructor @@ -60,7 +60,7 @@ DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {} ///\param existing_id - IN: Id of an existing dataset // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object() +DataSet::DataSet(const hid_t existing_id) : H5Object(), AbstractDs() { id = existing_id; } @@ -71,7 +71,7 @@ DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object() ///\param original - IN: DataSet instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(original) +DataSet::DataSet(const DataSet& original) : H5Object(), AbstractDs() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -95,7 +95,7 @@ DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(origi // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID) +DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), AbstractDs(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereferenced"); } @@ -114,7 +114,7 @@ DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type, co // Jul, 2008 // Added for application convenience. //-------------------------------------------------------------------------- -DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : AbstractDs(), H5Object(), id(H5I_INVALID_HID) +DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), AbstractDs(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference"); } diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp index 20b4e5e..761a454 100644 --- a/c++/src/H5DataSpace.cpp +++ b/c++/src/H5DataSpace.cpp @@ -93,7 +93,7 @@ DataSpace::DataSpace(const hid_t existing_id) : IdComponent() ///\param original - IN: DataSpace object to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataSpace::DataSpace(const DataSpace& original) : IdComponent(original) +DataSpace::DataSpace(const DataSpace& original) : IdComponent() { id = original.getId(); incRefCount(); // increment number of references to this id diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index a435b4e..c4b1694 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -134,7 +134,7 @@ DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type, ///\brief Copy constructor: makes a copy of the original DataType object. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -DataType::DataType(const DataType& original) : H5Object(original) +DataType::DataType(const DataType& original) : H5Object() { id = original.getId(); incRefCount(); // increment number of references to this id diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp index f153c92..fb1e42e 100644 --- a/c++/src/H5Exception.cpp +++ b/c++/src/H5Exception.cpp @@ -35,11 +35,11 @@ Exception::Exception() : detail_message(""), func_name("") {} // Function: Exception overloaded constructor ///\brief Creates an exception with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Exception::Exception(const H5std_string& func_name, const H5std_string& message) : detail_message(message), func_name(func_name) {} +Exception::Exception(const H5std_string& func, const H5std_string& message) : detail_message(message), func_name(func) {} //-------------------------------------------------------------------------- // Function: Exception copy constructor @@ -350,10 +350,10 @@ FileIException::FileIException():Exception(){} // Function: FileIException overloaded constructor ///\brief Creates a FileIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -FileIException::FileIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +FileIException::FileIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: FileIException destructor ///\brief Noop destructor. @@ -373,10 +373,10 @@ GroupIException::GroupIException():Exception(){} // Function: GroupIException overloaded constructor ///\brief Creates a GroupIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -GroupIException::GroupIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +GroupIException::GroupIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: GroupIException destructor ///\brief Noop destructor. @@ -396,10 +396,10 @@ DataSpaceIException::DataSpaceIException():Exception(){} // Function: DataSpaceIException overloaded constructor ///\brief Creates a DataSpaceIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataSpaceIException::DataSpaceIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataSpaceIException::DataSpaceIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataSpaceIException destructor ///\brief Noop destructor. @@ -419,10 +419,10 @@ DataTypeIException::DataTypeIException():Exception(){} // Function: DataTypeIException overloaded constructor ///\brief Creates a DataTypeIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataTypeIException::DataTypeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataTypeIException::DataTypeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataTypeIException destructor ///\brief Noop destructor. @@ -442,10 +442,10 @@ PropListIException::PropListIException():Exception(){} // Function: PropListIException overloaded constructor ///\brief Creates a PropListIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -PropListIException::PropListIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +PropListIException::PropListIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: PropListIException destructor ///\brief Noop destructor. @@ -465,10 +465,10 @@ DataSetIException::DataSetIException():Exception(){} // Function: DataSetIException overloaded constructor ///\brief Creates a DataSetIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -DataSetIException::DataSetIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +DataSetIException::DataSetIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: DataSetIException destructor ///\brief Noop destructor. @@ -488,10 +488,10 @@ AttributeIException::AttributeIException():Exception(){} // Function: AttributeIException overloaded constructor ///\brief Creates an AttributeIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -AttributeIException::AttributeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +AttributeIException::AttributeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: AttributeIException destructor ///\brief Noop destructor. @@ -511,10 +511,10 @@ ReferenceException::ReferenceException():Exception(){} // Function: ReferenceException overloaded constructor ///\brief Creates a ReferenceException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -ReferenceException::ReferenceException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +ReferenceException::ReferenceException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: ReferenceException destructor ///\brief Noop destructor. @@ -534,10 +534,10 @@ LibraryIException::LibraryIException():Exception(){} // Function: LibraryIException overloaded constructor ///\brief Creates a LibraryIException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -LibraryIException::LibraryIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +LibraryIException::LibraryIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: LibraryIException destructor ///\brief Noop destructor. @@ -557,10 +557,10 @@ LocationException::LocationException():Exception(){} // Function: LocationException overloaded constructor ///\brief Creates a LocationException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -LocationException::LocationException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +LocationException::LocationException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: LocationException destructor ///\brief Noop destructor. @@ -580,10 +580,10 @@ IdComponentException::IdComponentException(): Exception() {} // Function: IdComponentException overloaded constructor ///\brief Creates a IdComponentException with the name of the function, /// in which the failure occurs, and an optional detailed message. -///\param func_name - IN: Name of the function where failure occurs +///\param func - IN: Name of the function where failure occurs ///\param message - IN: Message on the failure //-------------------------------------------------------------------------- -IdComponentException::IdComponentException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {} +IdComponentException::IdComponentException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {} //-------------------------------------------------------------------------- // Function: IdComponentException destructor ///\brief Noop destructor. diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index 45e08b2..e0a0da5 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -50,7 +50,7 @@ namespace H5 { ///\brief Default constructor: creates a stub H5File object. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {} +H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: H5File overloaded constructor @@ -86,7 +86,7 @@ H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {} // to catch then re-throw it. -BMR 2013/03/21 // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID) +H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID) { try { p_get_file(name, flags, create_plist, access_plist); @@ -111,7 +111,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c // to catch then re-throw it. -BMR 2013/03/21 // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID) +H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID) { try { p_get_file(name.c_str(), flags, create_plist, access_plist); @@ -164,7 +164,7 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro ///\param original - IN: H5File instance to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -H5File::H5File(const H5File& original) : H5Location(original) +H5File::H5File(const H5File& original) : H5Location(), CommonFG() { id = original.getId(); incRefCount(); // increment number of references to this id diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index cad5e29..8b22458 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -51,7 +51,7 @@ namespace H5 { ///\brief Default constructor: creates a stub Group. // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group() : H5Object(), id(H5I_INVALID_HID) {} +Group::Group() : H5Object(), CommonFG(), id(H5I_INVALID_HID) {} //-------------------------------------------------------------------------- // Function: Group copy constructor @@ -59,7 +59,7 @@ Group::Group() : H5Object(), id(H5I_INVALID_HID) {} ///\param original - IN: Original group to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group(const Group& original) : H5Object(original) +Group::Group(const Group& original) : H5Object(), CommonFG() { id = original.getId(); incRefCount(); // increment number of references to this id @@ -82,7 +82,7 @@ hid_t Group::getLocId() const ///\param existing_id - IN: Id of an existing group // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -Group::Group(const hid_t existing_id) : H5Object() +Group::Group(const hid_t existing_id) : H5Object(), CommonFG() { id = existing_id; } @@ -100,7 +100,7 @@ Group::Group(const hid_t existing_id) : H5Object() /// is a datatype that has been named by DataType::commit. // Programmer Binh-Minh Ribler - Oct, 2006 //-------------------------------------------------------------------------- -Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), CommonFG(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference"); } @@ -115,7 +115,7 @@ Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const ///\exception H5::ReferenceException // Programmer Binh-Minh Ribler - Oct, 2006 //-------------------------------------------------------------------------- -Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(H5I_INVALID_HID) +Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), CommonFG(), id(H5I_INVALID_HID) { id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference"); } diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp index 4a9dcac..54813ea 100644 --- a/c++/src/H5IdComponent.cpp +++ b/c++/src/H5IdComponent.cpp @@ -37,16 +37,28 @@ namespace H5 { ///\param h5_id - IN: Id of an existing object ///\exception H5::DataTypeIException // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- IdComponent::IdComponent(const hid_t h5_id) {} //-------------------------------------------------------------------------- // Function: IdComponent copy constructor -///\brief Copy constructor: makes a copy of the original IdComponent object. -///\param original - IN: IdComponent instance to copy +// Purpose: This noop copy constructor is removed as a result of the data +// member "id" being moved down to sub-classes. (Mar 2015) +// Parameters: original - IN: IdComponent instance to copy // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -IdComponent::IdComponent( const IdComponent& original ) {} +// IdComponent::IdComponent(const IdComponent& original) {} //-------------------------------------------------------------------------- // Function: IdComponent::incRefCount @@ -82,12 +94,14 @@ void IdComponent::decRefCount(const hid_t obj_id) const { if (p_valid_id(obj_id)) if (H5Idec_ref(obj_id) < 0) + { if (H5Iget_ref(obj_id) <= 0) throw IdComponentException(inMemFunc("decRefCount"), "object ref count is 0 or negative"); else throw IdComponentException(inMemFunc("decRefCount"), "decrementing object ref count failed"); + } } //-------------------------------------------------------------------------- diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h index 3208a39..f9fd56e 100644 --- a/c++/src/H5IdComponent.h +++ b/c++/src/H5IdComponent.h @@ -60,11 +60,18 @@ class H5_DLLCPP IdComponent { // Sets the identifier of this object to a new value. void setId(const hid_t new_id); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates an object to hold an HDF5 identifier. IdComponent( const hid_t h5_id ); // Copy constructor: makes copy of the original IdComponent object. - IdComponent( const IdComponent& original ); + // IdComponent( const IdComponent& original ); #ifndef DOXYGEN_SHOULD_SKIP_THIS // Pure virtual function for there are various H5*close for the diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp index cd733c4..5cece19 100644 --- a/c++/src/H5Location.cpp +++ b/c++/src/H5Location.cpp @@ -70,17 +70,28 @@ H5Location::H5Location() : IdComponent() {} // object. // Parameters object_id - IN: Id of an existing HDF5 object // Programmer Binh-Minh Ribler - 2000 + +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- -H5Location::H5Location(const hid_t object_id) : IdComponent(object_id) {} +H5Location::H5Location(const hid_t object_id) : IdComponent() {} //-------------------------------------------------------------------------- // Function: H5Location copy constructor -///\brief Copy constructor: makes a copy of the original H5Location -/// instance. +// Purpose: This noop copy constructor is removed as a result of the data +// member "id" being moved down to sub-classes. (Mar 2015) ///\param original - IN: H5Location instance to copy // Programmer Binh-Minh Ribler - 2000 +// +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. //-------------------------------------------------------------------------- -H5Location::H5Location( const H5Location& original ) : IdComponent( original ) {} +// H5Location::H5Location(const H5Location& original) : IdComponent() {} #endif // DOXYGEN_SHOULD_SKIP_THIS diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h index e015825..15b9ffd 100644 --- a/c++/src/H5Location.h +++ b/c++/src/H5Location.h @@ -138,13 +138,21 @@ class H5_DLLCPP H5Location : public IdComponent { // Default constructor H5Location(); +#ifndef DOXYGEN_SHOULD_SKIP_THIS + + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates a copy of an existing object giving the location id. H5Location(const hid_t loc_id); // Copy constructor. H5Location(const H5Location& original); -#ifndef DOXYGEN_SHOULD_SKIP_THIS // Creates a reference to an HDF5 object or a dataset region. void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const; diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp index 94b03ab..df3f565 100644 --- a/c++/src/H5Object.cpp +++ b/c++/src/H5Object.cpp @@ -50,8 +50,26 @@ H5Object::H5Object() : H5Location() {} // object. // Parameters object_id - IN: Id of an existing HDF5 object // Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It will be removed in 1.10 release. If its +// removal does not raise any problems in 1.10, it will be removed from 1.8 in +// subsequent releases. //-------------------------------------------------------------------------- -H5Object::H5Object( const hid_t object_id ) : H5Location( object_id ) {} +H5Object::H5Object(const hid_t object_id) : H5Location() {} + +//-------------------------------------------------------------------------- +// Function: H5Object copy constructor +///\brief Copy constructor: makes a copy of the original H5Object +/// instance. +///\param original - IN: H5Object instance to copy +// Programmer Binh-Minh Ribler - 2000 +// *** Deprecation warning *** +// This constructor is no longer appropriate because the data member "id" had +// been moved to the sub-classes. It is removed from 1.8.15 because it is +// a noop and it can be generated by the compiler if needed. +//-------------------------------------------------------------------------- +// H5Object::H5Object(const H5Object& original) : H5Location() {} //-------------------------------------------------------------------------- // Function: getObjName @@ -165,15 +183,6 @@ ssize_t H5Object::getObjName(H5std_string& obj_name, size_t len) const } //-------------------------------------------------------------------------- -// Function: H5Object copy constructor -///\brief Copy constructor: makes a copy of the original H5Object -/// instance. -///\param original - IN: H5Object instance to copy -// Programmer Binh-Minh Ribler - 2000 -//-------------------------------------------------------------------------- -H5Object::H5Object( const H5Object& original ) : H5Location( original ) {} - -//-------------------------------------------------------------------------- // Function: H5Object destructor ///\brief Noop destructor. // Programmer Binh-Minh Ribler - 2000 diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index 5576d13..f8ac792 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -47,9 +47,6 @@ namespace H5 { class H5_DLLCPP H5Object : public H5Location { public: #ifndef DOXYGEN_SHOULD_SKIP_THIS - // Copy constructor: makes copy of an H5Object object. - H5Object(const H5Object& original); - // Gets the name of this HDF5 object, i.e., Group, DataSet, or // DataType. ssize_t getObjName(char *obj_name, size_t buf_size = 0) const; @@ -63,9 +60,19 @@ class H5_DLLCPP H5Object : public H5Location { // Default constructor H5Object(); + // *** Deprecation warning *** + // The following two constructors are no longer appropriate after the + // data member "id" had been moved to the sub-classes. + // The copy constructor is a noop and is removed in 1.8.15 and the + // other will be removed from 1.10 release, and then from 1.8 if its + // removal does not raise any problems in two 1.10 releases. + // Creates a copy of an existing object giving the object id H5Object( const hid_t object_id ); + // Copy constructor: makes copy of an H5Object object. + // H5Object(const H5Object& original); + #endif // DOXYGEN_SHOULD_SKIP_THIS }; /* end class H5Object */ diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp index 5afe80f..1d7d1ba 100644 --- a/c++/src/H5PropList.cpp +++ b/c++/src/H5PropList.cpp @@ -54,7 +54,7 @@ PropList::PropList() : IdComponent(), id(H5P_DEFAULT) {} ///\param original - IN: The original property list to copy // Programmer Binh-Minh Ribler - 2000 //-------------------------------------------------------------------------- -PropList::PropList(const PropList& original) : IdComponent(original) +PropList::PropList(const PropList& original) : IdComponent() { id = original.getId(); incRefCount(); // increment number of references to this id diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index bc39d22..19e4e22 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -678,7 +678,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 # After making changes, run bin/reconfigure to update other configure related # files like Makefile.in. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 205 +LT_VERS_REVISION = 206 LT_VERS_AGE = 0 # This is our main target |