summaryrefslogtreecommitdiffstats
path: root/c++
diff options
context:
space:
mode:
Diffstat (limited to 'c++')
-rw-r--r--c++/src/H5AbstractDs.h20
-rw-r--r--c++/src/H5ArrayType.cpp2
-rw-r--r--c++/src/H5ArrayType.h1
-rw-r--r--c++/src/H5AtomType.cpp2
-rw-r--r--c++/src/H5AtomType.h7
-rw-r--r--c++/src/H5Attribute.cpp37
-rw-r--r--c++/src/H5Attribute.h12
-rw-r--r--c++/src/H5CommonFG.cpp18
-rw-r--r--c++/src/H5CommonFG.h2
-rw-r--r--c++/src/H5CompType.cpp34
-rw-r--r--c++/src/H5DataSet.cpp20
-rw-r--r--c++/src/H5DataSpace.cpp22
-rw-r--r--c++/src/H5DataSpace.h4
-rw-r--r--c++/src/H5DataType.cpp49
-rw-r--r--c++/src/H5DataType.h1
-rw-r--r--c++/src/H5DcreatProp.cpp18
-rw-r--r--c++/src/H5DcreatProp.h6
-rw-r--r--c++/src/H5DxferProp.cpp12
-rw-r--r--c++/src/H5DxferProp.h42
-rw-r--r--c++/src/H5EnumType.cpp4
-rw-r--r--c++/src/H5Exception.cpp22
-rw-r--r--c++/src/H5Exception.h22
-rw-r--r--c++/src/H5FaccProp.cpp28
-rw-r--r--c++/src/H5FaccProp.h6
-rw-r--r--c++/src/H5FcreatProp.h6
-rw-r--r--c++/src/H5File.cpp18
-rw-r--r--c++/src/H5File.h10
-rw-r--r--c++/src/H5Group.cpp14
-rw-r--r--c++/src/H5Group.h12
-rw-r--r--c++/src/H5IdComponent.cpp37
-rw-r--r--c++/src/H5IdComponent.h20
-rw-r--r--c++/src/H5Include.h19
-rw-r--r--c++/src/H5IntType.h3
-rw-r--r--c++/src/H5PredType.cpp56
-rw-r--r--c++/src/H5PredType.h51
-rw-r--r--c++/src/H5PropList.cpp42
-rw-r--r--c++/src/H5PropList.h6
-rw-r--r--c++/src/H5VarLenType.h1
38 files changed, 377 insertions, 309 deletions
diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h
index c4102d6..634c068 100644
--- a/c++/src/H5AbstractDs.h
+++ b/c++/src/H5AbstractDs.h
@@ -41,25 +41,25 @@ class H5_DLLCPP AbstractDs : public H5Object {
// etc..., use the specific functions, that follow, instead.
DataType getDataType() const;
- // Gets a copy of the specific datatype of this abstract dataset.
+ // Gets a copy of the specific datatype of this abstract dataset.
ArrayType getArrayType() const;
- CompType getCompType() const;
- EnumType getEnumType() const;
- IntType getIntType() const;
- FloatType getFloatType() const;
- StrType getStrType() const;
+ CompType getCompType() const;
+ EnumType getEnumType() const;
+ IntType getIntType() const;
+ FloatType getFloatType() const;
+ StrType getStrType() const;
VarLenType getVarLenType() const;
// Gets the dataspace of this abstract dataset - pure virtual.
virtual DataSpace getSpace() const = 0;
- // Gets the class of the datatype that is used by this abstract
+ // Gets the class of the datatype that is used by this abstract
// dataset.
H5T_class_t getTypeClass() const;
- // Returns the amount of storage size required for this abstract
+ // Returns the amount of storage size required for this abstract
// dataset - pure virtual.
- virtual hsize_t getStorageSize() const = 0;
+ virtual hsize_t getStorageSize() const = 0;
// Copy constructor
AbstractDs( const AbstractDs& original );
@@ -75,7 +75,7 @@ class H5_DLLCPP AbstractDs : public H5Object {
AbstractDs( const hid_t ds_id );
private:
- // This member function is implemented by DataSet and Attribute
+ // This member function is implemented by DataSet and Attribute.
virtual hid_t p_get_type() const = 0;
};
#ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5ArrayType.cpp b/c++/src/H5ArrayType.cpp
index 74c572b..a3307ec 100644
--- a/c++/src/H5ArrayType.cpp
+++ b/c++/src/H5ArrayType.cpp
@@ -164,7 +164,7 @@ ArrayType::~ArrayType()
{
// Free allocated memory
if (dimensions != NULL)
- delete [] dimensions;
+ delete []dimensions;
}
#ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h
index ce993ba..6be9b96 100644
--- a/c++/src/H5ArrayType.h
+++ b/c++/src/H5ArrayType.h
@@ -22,6 +22,7 @@
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
+
class H5_DLLCPP ArrayType : public DataType {
public:
// Constructor that creates a new array data type based on the
diff --git a/c++/src/H5AtomType.cpp b/c++/src/H5AtomType.cpp
index 8fe30de..4f84c41 100644
--- a/c++/src/H5AtomType.cpp
+++ b/c++/src/H5AtomType.cpp
@@ -97,7 +97,7 @@ H5T_order_t AtomType::getOrder() const
//--------------------------------------------------------------------------
// Function: AtomType::getOrder
///\brief This is an overloaded member function, provided for convenience.
-/// It takes a reference to a \c std::string for the buffer that
+/// It takes a reference to a \c std::string for the buffer that
/// provide the text description of the returned byte order.
/// The text description can be either of the following:
/// "Little endian byte ordering (0)";
diff --git a/c++/src/H5AtomType.h b/c++/src/H5AtomType.h
index 40bbc6a..58dd9cd 100644
--- a/c++/src/H5AtomType.h
+++ b/c++/src/H5AtomType.h
@@ -24,11 +24,12 @@
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
+
class H5_DLLCPP AtomType : public DataType {
public:
// Returns the byte order of an atomic datatype.
- H5T_order_t getOrder( H5std_string& order_string ) const;
H5T_order_t getOrder() const;
+ H5T_order_t getOrder( H5std_string& order_string ) const;
// Sets the byte ordering of an atomic datatype.
void setOrder( H5T_order_t order ) const;
@@ -55,8 +56,8 @@ class H5_DLLCPP AtomType : public DataType {
// Sets the total size for an atomic datatype.
void setSize( size_t size ) const;
- // Returns this class name
- virtual H5std_string fromClass () const { return("AtomType"); }
+ // Returns this class name
+ virtual H5std_string fromClass () const { return("AtomType"); }
// Copy constructor - makes copy of the original object
AtomType( const AtomType& original );
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index 7547ca5..ec12d6b 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -17,7 +17,6 @@
#else
#include <iostream>
#endif
-
#include <string>
#include "H5Include.h"
@@ -262,6 +261,21 @@ H5std_string Attribute::getName() const
}
//--------------------------------------------------------------------------
+// Function: Attribute::getStorageSize
+///\brief Returns the amount of storage size required for this attribute.
+///\return Size of the storage or 0, for no data
+///\exception H5::AttributeIException
+// Note: H5Dget_storage_size returns 0 when there is no data. This
+// function should have no failure. (from SLU)
+// Programmer Binh-Minh Ribler - Mar, 2005
+//--------------------------------------------------------------------------
+hsize_t Attribute::getStorageSize() const
+{
+ hsize_t storage_size = H5Aget_storage_size(id);
+ return (storage_size);
+}
+
+//--------------------------------------------------------------------------
// Function: Attribute::close
///\brief Closes this attribute.
///
@@ -283,27 +297,14 @@ void Attribute::close()
}
//--------------------------------------------------------------------------
-// Function: Attribute::getStorageSize
-///\brief Returns the amount of storage size required for this attribute.
-///\return Size of the storage or 0, for no data
-///\exception H5::AttributeIException
-// Note: H5Dget_storage_size returns 0 when there is no data. This
-// function should have no failure. (from SLU)
-// Programmer Binh-Minh Ribler - Mar, 2005
-//--------------------------------------------------------------------------
-hsize_t Attribute::getStorageSize() const
-{
- hsize_t storage_size = H5Aget_storage_size(id);
- return (storage_size);
-}
-
-//--------------------------------------------------------------------------
// Function: Attribute destructor
///\brief Properly terminates access to this attribute.
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
Attribute::~Attribute()
{
diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h
index 324867a..4ab6d3d 100644
--- a/c++/src/H5Attribute.h
+++ b/c++/src/H5Attribute.h
@@ -53,6 +53,9 @@ class H5_DLLCPP Attribute : public AbstractDs {
// Copy constructor: makes a copy of an existing Attribute object.
Attribute( const Attribute& original );
+ // Default constructor
+ Attribute();
+
// Destructor: properly terminates access to this attribute.
virtual ~Attribute();
@@ -63,14 +66,11 @@ class H5_DLLCPP Attribute : public AbstractDs {
// sub-types
virtual hid_t p_get_type() const;
- // do not inherit iterateAttrs from H5Object
+ // do not inherit H5Object::iterateAttrs
int iterateAttrs() { return 0; }
- // do not inherit iterateAttrs from H5Object
- void rename() {}
-
- // Default constructor
- Attribute();
+ // do not inherit H5Object::renameAttr
+ void renameAttr() {}
};
#ifndef H5_NO_NAMESPACE
}
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp
index 2dd6fdb..cad625a 100644
--- a/c++/src/H5CommonFG.cpp
+++ b/c++/src/H5CommonFG.cpp
@@ -56,7 +56,7 @@ namespace H5 {
///\param size_hint - IN: Indicates the number of bytes to reserve for
/// the names that will appear in the group
///\return Group instance
-///\exception H5::GroupIException
+///\exception H5::FileIException or H5::GroupIException
///\par Description
/// The optional \a size_hint specifies how much file space to
/// reserve for storing the names that will appear in this new
@@ -99,7 +99,7 @@ Group CommonFG::createGroup( const H5std_string& name, size_t size_hint ) const
/// or another group.
///\param name - IN: Name of the group to open
///\return Group instance
-///\exception H5::GroupIException
+///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
Group CommonFG::openGroup( const char* name ) const
@@ -139,7 +139,7 @@ Group CommonFG::openGroup( const H5std_string& name ) const
///\param data_space - IN: Dataspace for the dataset
///\param create_plist - IN: Creation properly list for the dataset
///\return DataSet instance
-///\exception H5::DataSetIException
+///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, const DataSpace& data_space, const DSetCreatPropList& create_plist ) const
@@ -180,7 +180,7 @@ DataSet CommonFG::createDataSet( const H5std_string& name, const DataType& data_
///\brief Opens an existing dataset at this location.
///\param name - IN: Name of the dataset to open
///\return DataSet instance
-///\exception H5::DataSetIException
+///\exception H5::FileIException or H5::GroupIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
DataSet CommonFG::openDataSet( const char* name ) const
@@ -318,11 +318,11 @@ void CommonFG::move( const H5std_string& src, const H5std_string& dst ) const
///\param follow_link - IN: Link flag
///\param statbuf - OUT: Buffer to return information about the object
///\exception H5::FileIException or H5::GroupIException
-// Programmer Binh-Minh Ribler - 2000
///\par Description
/// For more information, please refer to the C layer Reference
/// Manual at:
/// http://hdf.ncsa.uiuc.edu/HDF5/doc/RM_H5G.html#Group-GetObjinfo
+// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
void CommonFG::getObjinfo( const char* name, hbool_t follow_link, H5G_stat_t& statbuf ) const
{
@@ -505,7 +505,7 @@ H5std_string CommonFG::getComment (const H5std_string& name) const
{
throwException("getComment", "H5Gget_comment failed");
}
- H5std_string comment = H5std_string( comment_C );
+ H5std_string comment = H5std_string(comment_C);
delete []comment_C;
return (comment);
}
@@ -532,7 +532,7 @@ H5std_string CommonFG::getComment( const char* name, size_t bufsize ) const
{
throwException("getComment", "H5Gget_comment failed");
}
- H5std_string comment = H5std_string( comment_C );
+ H5std_string comment = H5std_string(comment_C);
delete []comment_C;
return( comment );
}
@@ -1017,8 +1017,8 @@ ssize_t CommonFG::getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size)
{
throwException("getObjnameByIdx", "H5Gget_objname_by_idx failed");
}
- name = H5std_string( name_C );
- delete [] name_C;
+ name = H5std_string(name_C);
+ delete []name_C;
return (name_len);
}
diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h
index 5418952..3d7d397 100644
--- a/c++/src/H5CommonFG.h
+++ b/c++/src/H5CommonFG.h
@@ -151,7 +151,7 @@ class H5_DLLCPP CommonFG {
#endif // DOXYGEN_SHOULD_SKIP_THIS
/// For subclasses, H5File and Group, to throw appropriate exception.
- virtual void throwException(const H5std_string func_name, const H5std_string msg) const = 0;
+ virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const = 0;
// Default constructor.
CommonFG();
diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp
index 4655076..38731b0 100644
--- a/c++/src/H5CompType.cpp
+++ b/c++/src/H5CompType.cpp
@@ -191,7 +191,7 @@ H5T_class_t CompType::getMemberClass( unsigned member_num ) const
if( member_class == H5T_NO_CLASS )
{
throw DataTypeIException("CompType::getMemberClass",
- "H5Tget_member_class returns H5T_NO_CLASS");
+ "H5Tget_member_class returns H5T_NO_CLASS");
}
return(member_class);
}
@@ -255,42 +255,42 @@ ArrayType CompType::getMemberArrayType( unsigned member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberEnumType
-///\brief Returns the enumeration datatype of the specified member in
-/// this compound datatype.
+// Function: CompType::getMemberCompType
+///\brief Returns the compound datatype of the specified member in this
+/// compound datatype.
///\param member_num - IN: Zero-based index of the member
-///\return EnumType instance
+///\return CompType instance
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-EnumType CompType::getMemberEnumType( unsigned member_num ) const
+CompType CompType::getMemberCompType( unsigned member_num ) const
{
try {
- EnumType enumtype(p_get_member_type(member_num));
- return(enumtype);
+ CompType comptype(p_get_member_type(member_num));
+ return(comptype);
}
catch (DataTypeIException E) {
- throw DataTypeIException("CompType::getMemberEnumType", E.getDetailMsg());
+ throw DataTypeIException("CompType::getMemberCompType", E.getDetailMsg());
}
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberCompType
-///\brief Returns the compound datatype of the specified member in this
-/// compound datatype.
+// Function: CompType::getMemberEnumType
+///\brief Returns the enumeration datatype of the specified member in
+/// this compound datatype.
///\param member_num - IN: Zero-based index of the member
-///\return CompType instance
+///\return EnumType instance
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-CompType CompType::getMemberCompType( unsigned member_num ) const
+EnumType CompType::getMemberEnumType( unsigned member_num ) const
{
try {
- CompType comptype(p_get_member_type(member_num));
- return(comptype);
+ EnumType enumtype(p_get_member_type(member_num));
+ return(enumtype);
}
catch (DataTypeIException E) {
- throw DataTypeIException("CompType::getMemberCompType", E.getDetailMsg());
+ throw DataTypeIException("CompType::getMemberEnumType", E.getDetailMsg());
}
}
diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp
index fe03008..c938b20 100644
--- a/c++/src/H5DataSet.cpp
+++ b/c++/src/H5DataSet.cpp
@@ -46,7 +46,7 @@ namespace H5 {
///\brief Default constructor: creates a stub DataSet.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-DataSet::DataSet() : AbstractDs() {}
+DataSet::DataSet() : AbstractDs() {}
//--------------------------------------------------------------------------
// Function: DataSet overloaded constructor
@@ -436,7 +436,7 @@ void* DataSet::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_
///\brief This is an overloaded function, provided for your convenience.
/// It differs from the above function in that it only creates
/// a reference to an HDF5 object, not to a dataset region.
-///\param name - IN: Name of the object to be referenced
+///\param name - IN: Name of the object to be referenced - \c char pointer
///\return A reference
///\exception H5::DataSetIException
///\par Description
@@ -474,10 +474,10 @@ void* DataSet::Reference(const H5std_string& name) const
///\param ref_type - IN: Type of reference to query
///\param ref - IN: Reference to query
///\return An object type, which can be one of the following:
-// H5G_LINK Object is a symbolic link.
-// H5G_GROUP Object is a group.
-// H5G_DATASET Object is a dataset.
-// H5G_TYPE Object is a named datatype
+/// \li \c H5G_LINK Object is a symbolic link.
+/// \li \c H5G_GROUP Object is a group.
+/// \li \c H5G_DATASET Object is a dataset.
+/// \li \c H5G_TYPE Object is a named datatype
///\exception H5::DataSetIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
@@ -526,7 +526,7 @@ void DataSet::close()
herr_t ret_value = H5Dclose( id );
if( ret_value < 0 )
{
- throw DataSetIException("DataSet::close", "H5Dclose failed");
+ throw DataSetIException("DataSet::close", "H5Dclose failed");
}
// reset the id because the dataset that it represents is now closed
id = 0;
@@ -538,8 +538,10 @@ void DataSet::close()
///\brief Properly terminates access to this dataset.
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
DataSet::~DataSet()
{
diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp
index e786144..42c31ec 100644
--- a/c++/src/H5DataSpace.cpp
+++ b/c++/src/H5DataSpace.cpp
@@ -98,8 +98,10 @@ DataSpace::DataSpace( const DataSpace& original ) : IdComponent( original ) {}
///\exception H5::DataSpaceIException
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
void DataSpace::copy( const DataSpace& like_space )
{
@@ -410,7 +412,7 @@ void DataSpace::getSelectElemPointlist ( hsize_t startpoint, hsize_t numpoints,
if( ret_value < 0 )
{
throw DataSpaceIException("DataSpace::getSelectElemPointlist",
- "H5Sget_select_elem_pointlist failed");
+ "H5Sget_select_elem_pointlist failed");
}
}
@@ -433,7 +435,7 @@ void DataSpace::getSelectBounds ( hsize_t* start, hsize_t* end ) const
if( ret_value < 0 )
{
throw DataSpaceIException("DataSpace::getSelectBounds",
- "H5Sget_select_bounds failed");
+ "H5Sget_select_bounds failed");
}
}
@@ -460,7 +462,7 @@ void DataSpace::selectElements ( H5S_seloper_t op, const size_t num_elements, co
if( ret_value < 0 )
{
throw DataSpaceIException("DataSpace::selectElements",
- "H5Sselect_elements failed");
+ "H5Sselect_elements failed");
}
}
@@ -493,7 +495,7 @@ void DataSpace::selectNone () const
if( ret_value < 0 )
{
throw DataSpaceIException("DataSpace::selectNone",
- "H5Sselect_none failed");
+ "H5Sselect_none failed");
}
}
@@ -516,7 +518,7 @@ bool DataSpace::selectValid () const
else
{
throw DataSpaceIException("DataSpace::selectValid",
- "H5Sselect_valid returns negative value");
+ "H5Sselect_valid returns negative value");
}
}
@@ -573,8 +575,10 @@ void DataSpace::close()
///\brief Properly terminates access to this dataspace.
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
DataSpace::~DataSpace()
{
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h
index 1016839..c8a2d7c 100644
--- a/c++/src/H5DataSpace.h
+++ b/c++/src/H5DataSpace.h
@@ -34,8 +34,8 @@ class H5_DLLCPP DataSpace : public IdComponent {
// Assignment operator
DataSpace& operator=( const DataSpace& rhs );
- // Closes this dataspace.
- virtual void close();
+ // Closes this dataspace.
+ virtual void close();
// Makes copy of an existing dataspace.
void copy(const DataSpace& like_space);
diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp
index 815faca..af05632 100644
--- a/c++/src/H5DataType.cpp
+++ b/c++/src/H5DataType.cpp
@@ -96,18 +96,19 @@ DataType::DataType(const DataType& original) : H5Object(original) {}
///\exception H5::DataTypeIException
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
void DataType::copy( const DataType& like_type )
{
- // If this object is representing an hdf5 object, close it before
- // copying like_type to it
+ // close the current data type before copying like_type to this object
try {
- close();
+ close();
}
catch (Exception close_error) {
- throw FileIException("DataType::copy", close_error.getDetailMsg());
+ throw DataTypeIException("DataType::copy", close_error.getDetailMsg());
}
// call C routine to copy the datatype
@@ -131,8 +132,8 @@ DataType& DataType::operator=( const DataType& rhs )
{
if (this != &rhs)
{
- copy(rhs);
- return(*this);
+ copy(rhs);
+ return(*this);
}
}
@@ -468,20 +469,20 @@ void DataType::setTag( const H5std_string& tag ) const
//--------------------------------------------------------------------------
H5std_string DataType::getTag() const
{
- char* tag_Cstr = H5Tget_tag( id );
+ char* tag_Cstr = H5Tget_tag( id );
- // if the tag C-string returned is not NULL, convert it to C++ string
- // and return it, otherwise, raise an exception
- if( tag_Cstr != NULL )
- {
- H5std_string tag = H5std_string(tag_Cstr); // convert C string to string object
+ // if the tag C-string returned is not NULL, convert it to C++ string
+ // and return it, otherwise, raise an exception
+ if( tag_Cstr != NULL )
+ {
+ H5std_string tag = H5std_string(tag_Cstr); // C string to string object
HDfree(tag_Cstr); // free the C string
- return (tag); // return the tag
- }
- else
- {
- throw DataTypeIException(inMemFunc("getTag"), "H5Tget_tag returns NULL for tag");
- }
+ return (tag); // return the tag
+ }
+ else
+ {
+ throw DataTypeIException(inMemFunc("getTag"), "H5Tget_tag returns NULL for tag");
+ }
}
//--------------------------------------------------------------------------
@@ -643,7 +644,7 @@ void DataType::close()
herr_t ret_value = H5Tclose(id);
if( ret_value < 0 )
{
- throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
+ throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
}
// reset the id because the datatype that it represents is now closed
id = 0;
@@ -655,8 +656,10 @@ void DataType::close()
///\brief Properly terminates access to this datatype.
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
DataType::~DataType()
{
diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h
index 14816b6..5e92edc 100644
--- a/c++/src/H5DataType.h
+++ b/c++/src/H5DataType.h
@@ -104,6 +104,7 @@ class H5_DLLCPP DataType : public H5Object {
// Retrieves a dataspace with the region pointed to selected.
DataSpace getRegion(void *ref, H5R_type_t ref_type = H5R_DATASET_REGION) const;
+ // Returns this class name
virtual H5std_string fromClass () const { return("DataType"); }
// Creates a copy of an existing DataType using its id
diff --git a/c++/src/H5DcreatProp.cpp b/c++/src/H5DcreatProp.cpp
index faa03da..5f5bceb 100644
--- a/c++/src/H5DcreatProp.cpp
+++ b/c++/src/H5DcreatProp.cpp
@@ -262,7 +262,8 @@ H5D_fill_value_t DSetCreatPropList::isFillValueDefined()
/// and the filter fails then the entire I/O operation fails.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-void DSetCreatPropList::setFilter( H5Z_filter_t filter_id, unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[] ) const
+void DSetCreatPropList::setFilter( H5Z_filter_t filter_id, unsigned int flags,
+ size_t cd_nelmts, const unsigned int cd_values[] ) const
{
herr_t ret_value = H5Pset_filter( id, filter_id, flags, cd_nelmts, cd_values );
if( ret_value < 0 )
@@ -328,9 +329,9 @@ int DSetCreatPropList::getNfilters() const
///\par Description
/// Failure occurs when \a filter_number is out of range.
//--------------------------------------------------------------------------
-H5Z_filter_t DSetCreatPropList::getFilter(int filter_number, unsigned int &flags, size_t &cd_nelmts,
- unsigned int* cd_values, size_t namelen, char name[],
- unsigned int& filter_config) const
+H5Z_filter_t DSetCreatPropList::getFilter(int filter_number,
+ unsigned int &flags, size_t &cd_nelmts, unsigned int* cd_values,
+ size_t namelen, char name[], unsigned int& filter_config) const
{
H5Z_filter_t filter_id;
filter_id = H5Pget_filter( id, filter_number, &flags, &cd_nelmts,
@@ -359,9 +360,9 @@ H5Z_filter_t DSetCreatPropList::getFilter(int filter_number, unsigned int &flags
///\exception H5::PropListIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-void DSetCreatPropList::getFilterById(H5Z_filter_t filter_id, unsigned int &flags, size_t &cd_nelmts,
- unsigned int* cd_values, size_t namelen, char name[],
- unsigned int &filter_config) const
+void DSetCreatPropList::getFilterById(H5Z_filter_t filter_id,
+ unsigned int &flags, size_t &cd_nelmts, unsigned int* cd_values,
+ size_t namelen, char name[], unsigned int &filter_config) const
{
herr_t ret_value = H5Pget_filter_by_id(id, filter_id, &flags, &cd_nelmts,
cd_values, namelen, name, &filter_config );
@@ -393,7 +394,8 @@ void DSetCreatPropList::getFilterById(H5Z_filter_t filter_id, unsigned int &flag
/// and the filter fails then the entire I/O operation fails.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-void DSetCreatPropList::modifyFilter( H5Z_filter_t filter_id, unsigned int flags, size_t cd_nelmts, const unsigned int cd_values[] ) const
+void DSetCreatPropList::modifyFilter( H5Z_filter_t filter_id, unsigned int
+ flags, size_t cd_nelmts, const unsigned int cd_values[] ) const
{
herr_t ret_value = H5Pmodify_filter(id, filter_id, flags, cd_nelmts, cd_values);
if( ret_value < 0 )
diff --git a/c++/src/H5DcreatProp.h b/c++/src/H5DcreatProp.h
index 8ce7e81..7f73a0c 100644
--- a/c++/src/H5DcreatProp.h
+++ b/c++/src/H5DcreatProp.h
@@ -25,6 +25,9 @@ class H5_DLLCPP DSetCreatPropList : public PropList {
// Default dataset creation property list.
static const DSetCreatPropList DEFAULT;
+ // Creates a dataset creation property list.
+ DSetCreatPropList();
+
// Queries whether all the filters set in this property list are
// available currently.
bool allFiltersAvail();
@@ -103,9 +106,6 @@ class H5_DLLCPP DSetCreatPropList : public PropList {
// Returns this class name
virtual H5std_string fromClass () const { return("DSetCreatPropList"); }
- // Default constructor: creates a stub dataset creation property list.
- DSetCreatPropList();
-
// Copy constructor: creates a copy of a DSetCreatPropList object.
DSetCreatPropList(const DSetCreatPropList& orig);
diff --git a/c++/src/H5DxferProp.cpp b/c++/src/H5DxferProp.cpp
index bc3bbd1..cc28cc6 100644
--- a/c++/src/H5DxferProp.cpp
+++ b/c++/src/H5DxferProp.cpp
@@ -41,11 +41,11 @@ DSetMemXferPropList::DSetMemXferPropList() : PropList(H5P_DATASET_XFER) {}
// Function DSetMemXferPropList copy constructor
///\brief Copy constructor: makes a copy of the original
/// DSetMemXferPropList object
-///\param orig - IN: The original dataset memory and transfer property
+///\param original - IN: Original dataset memory and transfer property
/// list object to copy
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-DSetMemXferPropList::DSetMemXferPropList( const DSetMemXferPropList& orig ) : PropList( orig ) {}
+DSetMemXferPropList::DSetMemXferPropList(const DSetMemXferPropList& original ) : PropList( original ) {}
//--------------------------------------------------------------------------
// Function DSetMemXferPropList overloaded constructor
@@ -188,7 +188,7 @@ void DSetMemXferPropList::setTypeConvCB( H5T_conv_except_func_t op, void *user_d
if( ret_value < 0 )
{
throw PropListIException("DSetMemXferPropList::setTypeConvCB",
- "H5Pset_type_conv_cb failed");
+ "H5Pset_type_conv_cb failed");
}
}
@@ -206,7 +206,7 @@ void DSetMemXferPropList::getTypeConvCB( H5T_conv_except_func_t *op, void **user
if( ret_value < 0 )
{
throw PropListIException("DSetMemXferPropList::getTypeConvCB",
- "H5Pget_type_conv_cb failed");
+ "H5Pget_type_conv_cb failed");
}
}
@@ -325,7 +325,7 @@ void DSetMemXferPropList::setSmallDataBlockSize(hsize_t size)
// Function: DSetMemXferPropList::getSmallDataBlockSize
///\brief Returns the current small data block size setting.
///\return Size of the small data block, in bytes
-///\exception H5::PropListIException
+///\exception H5::PropListIException
// Programmer: Binh-Minh Ribler - April, 2004
//--------------------------------------------------------------------------
hsize_t DSetMemXferPropList::getSmallDataBlockSize()
@@ -362,7 +362,7 @@ void DSetMemXferPropList::setHyperVectorSize(size_t vector_size)
}
//--------------------------------------------------------------------------
-// Function: DSetMemXferPropList::getSmallDataBlockSize
+// Function: DSetMemXferPropList::getHyperVectorSize
///\brief Returns the number of I/O vectors to be read/written in
/// hyperslab I/O.
///\return Number of I/O vectors
diff --git a/c++/src/H5DxferProp.h b/c++/src/H5DxferProp.h
index 3155fa6..eae80ae 100644
--- a/c++/src/H5DxferProp.h
+++ b/c++/src/H5DxferProp.h
@@ -24,47 +24,44 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
public:
static const DSetMemXferPropList DEFAULT;
- // Creates a dataset memory and transfer property list
+ // Creates a dataset memory and transfer property list.
DSetMemXferPropList();
- // Copy constructor: creates a copy of a DSetMemXferPropList object
- DSetMemXferPropList( const DSetMemXferPropList& orig );
-
- // Sets type conversion and background buffers
+ // Sets type conversion and background buffers.
void setBuffer( size_t size, void* tconv, void* bkg ) const;
- // Reads buffer settings
+ // Reads buffer settings.
size_t getBuffer( void** tconv, void** bkg ) const;
- // Sets the dataset transfer property list status to TRUE or FALSE
- void setPreserve( bool status ) const;
-
- // Checks status of the dataset transfer property list
- bool getPreserve() const;
-
- // Sets B-tree split ratios for a dataset transfer property list
+ // Sets B-tree split ratios for a dataset transfer property list.
void setBtreeRatios( double left, double middle, double right ) const;
- // Gets B-tree split ratios for a dataset transfer property list
+ // Gets B-tree split ratios for a dataset transfer property list.
void getBtreeRatios( double& left, double& middle, double& right ) const;
- // Sets an exception handling callback for datatype conversion
+ // Sets the dataset transfer property list status to TRUE or FALSE.
+ void setPreserve( bool status ) const;
+
+ // Checks status of the dataset transfer property list.
+ bool getPreserve() const;
+
+ // Sets an exception handling callback for datatype conversion.
void setTypeConvCB( H5T_conv_except_func_t op, void *user_data) const;
- // Gets the exception handling callback for datatype conversion
+ // Gets the exception handling callback for datatype conversion.
void getTypeConvCB( H5T_conv_except_func_t *op, void **user_data) const;
// Sets the memory manager for variable-length datatype
- // allocation in H5Dread and H5Dvlen_reclaim
+ // allocation in H5Dread and H5Dvlen_reclaim.
void setVlenMemManager( H5MM_allocate_t alloc, void* alloc_info,
H5MM_free_t free, void* free_info ) const;
// alloc and free are set to NULL, indicating that system
- // malloc and free are to be used
+ // malloc and free are to be used.
void setVlenMemManager() const;
// Gets the memory manager for variable-length datatype
- // allocation in H5Dread and H5Tvlen_reclaim
+ // allocation in H5Dread and H5Tvlen_reclaim.
void getVlenMemManager( H5MM_allocate_t& alloc, void** alloc_info,
H5MM_free_t& free, void** free_info ) const;
@@ -94,12 +91,15 @@ class H5_DLLCPP DSetMemXferPropList : public PropList {
// Determines whether error-detection is enabled for dataset reads.
H5Z_EDC_t getEDCCheck();
- // Returns this class name
+ // Returns this class name.
virtual H5std_string fromClass () const { return("DSetMemXferPropList"); }
+ // Copy constructor: makes a copy of a DSetMemXferPropList object.
+ DSetMemXferPropList(const DSetMemXferPropList& orig);
+
// Creates a copy of an existing dataset memory and transfer
// property list using the property list id.
- DSetMemXferPropList (const hid_t plist_id);
+ DSetMemXferPropList(const hid_t plist_id);
// Noop destructor
virtual ~DSetMemXferPropList();
diff --git a/c++/src/H5EnumType.cpp b/c++/src/H5EnumType.cpp
index 18735bf..9d6608f 100644
--- a/c++/src/H5EnumType.cpp
+++ b/c++/src/H5EnumType.cpp
@@ -159,8 +159,8 @@ H5std_string EnumType::nameOf( void *value, size_t size ) const
throw DataTypeIException("EnumType::nameOf", "H5Tenum_nameof failed");
}
// otherwise, create the string to hold the datatype name and return it
- H5std_string name = H5std_string( name_C );
- delete [] name_C;
+ H5std_string name = H5std_string(name_C);
+ delete []name_C;
return( name );
}
diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp
index 3ac47b6..4f79f8e 100644
--- a/c++/src/H5Exception.cpp
+++ b/c++/src/H5Exception.cpp
@@ -38,7 +38,7 @@ Exception::Exception() : detail_message(""), func_name("") {}
///\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_name, const H5std_string& message) : detail_message(message), func_name(func_name) {}
//--------------------------------------------------------------------------
// Function: Exception copy constructor
@@ -329,7 +329,7 @@ FileIException::FileIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: FileIException destructor
///\brief Noop destructor.
@@ -352,7 +352,7 @@ GroupIException::GroupIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: GroupIException destructor
///\brief Noop destructor.
@@ -375,7 +375,7 @@ DataSpaceIException::DataSpaceIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: DataSpaceIException destructor
///\brief Noop destructor.
@@ -398,7 +398,7 @@ DataTypeIException::DataTypeIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: DataTypeIException destructor
///\brief Noop destructor.
@@ -421,7 +421,7 @@ PropListIException::PropListIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: PropListIException destructor
///\brief Noop destructor.
@@ -444,7 +444,7 @@ DataSetIException::DataSetIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: DataSetIException destructor
///\brief Noop destructor.
@@ -467,7 +467,7 @@ AttributeIException::AttributeIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: AttributeIException destructor
///\brief Noop destructor.
@@ -490,7 +490,7 @@ ReferenceException::ReferenceException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: ReferenceException destructor
///\brief Noop destructor.
@@ -513,7 +513,7 @@ LibraryIException::LibraryIException():Exception(){}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: LibraryIException destructor
///\brief Noop destructor.
@@ -536,7 +536,7 @@ IdComponentException::IdComponentException(): Exception() {}
///\param func_name - 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_name, const H5std_string& message) : Exception(func_name, message) {}
//--------------------------------------------------------------------------
// Function: IdComponentException destructor
///\brief Noop destructor.
diff --git a/c++/src/H5Exception.h b/c++/src/H5Exception.h
index 66219c7..5e5dfce 100644
--- a/c++/src/H5Exception.h
+++ b/c++/src/H5Exception.h
@@ -31,7 +31,7 @@ class H5_DLLCPP Exception {
public:
// Creates an exception with a function name where the failure occurs
// and an optional detailed message
- Exception(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ Exception(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
// Returns a character string that describes the error specified by
// a major error number.
@@ -94,70 +94,70 @@ class H5_DLLCPP Exception {
class H5_DLLCPP FileIException : public Exception {
public:
- FileIException( const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ FileIException( const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
FileIException();
virtual ~FileIException();
};
class H5_DLLCPP GroupIException : public Exception {
public:
- GroupIException( const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ GroupIException( const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
GroupIException();
virtual ~GroupIException();
};
class H5_DLLCPP DataSpaceIException : public Exception {
public:
- DataSpaceIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ DataSpaceIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataSpaceIException();
virtual ~DataSpaceIException();
};
class H5_DLLCPP DataTypeIException : public Exception {
public:
- DataTypeIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ DataTypeIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataTypeIException();
virtual ~DataTypeIException();
};
class H5_DLLCPP PropListIException : public Exception {
public:
- PropListIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ PropListIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
PropListIException();
virtual ~PropListIException();
};
class H5_DLLCPP DataSetIException : public Exception {
public:
- DataSetIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ DataSetIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
DataSetIException();
virtual ~DataSetIException();
};
class H5_DLLCPP AttributeIException : public Exception {
public:
- AttributeIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ AttributeIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
AttributeIException();
virtual ~AttributeIException();
};
class H5_DLLCPP ReferenceException : public Exception {
public:
- ReferenceException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ ReferenceException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
ReferenceException();
virtual ~ReferenceException();
};
class H5_DLLCPP LibraryIException : public Exception {
public:
- LibraryIException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ LibraryIException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
LibraryIException();
virtual ~LibraryIException();
};
class H5_DLLCPP IdComponentException : public Exception {
public:
- IdComponentException(const H5std_string func_name, const H5std_string message = DEFAULT_MSG);
+ IdComponentException(const H5std_string& func_name, const H5std_string& message = DEFAULT_MSG);
IdComponentException();
virtual ~IdComponentException();
};
diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp
index b3f5abc..40800a4 100644
--- a/c++/src/H5FaccProp.cpp
+++ b/c++/src/H5FaccProp.cpp
@@ -31,23 +31,23 @@ const FileAccPropList FileAccPropList::DEFAULT;
//--------------------------------------------------------------------------
// Function: Default Constructor
-///\brief Default constructor: creates a file access property list
+///\brief Creates a file access property list
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FileAccPropList::FileAccPropList() : PropList( H5P_FILE_ACCESS ) {}
//--------------------------------------------------------------------------
// Function: FileAccPropList copy constructor
-///\brief Copy Constructor: makes a copy of the original
-/// FileAccPropList object.
+///\brief Copy Constructor: makes a copy of the original
+/// FileAccPropList object.
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FileAccPropList::FileAccPropList(const FileAccPropList& orig) : PropList(orig) {}
//--------------------------------------------------------------------------
// Function: FileAccPropList overloaded constructor
-///\brief Creates a file access property list using the id of an
-/// existing one.
+///\brief Creates a file access property list using the id of an
+/// existing one.
// Programmer: Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FileAccPropList::FileAccPropList(const hid_t plist_id) : PropList(plist_id) {}
@@ -70,7 +70,7 @@ void FileAccPropList::setStdio() const
//--------------------------------------------------------------------------
// Function: FileAccPropList::getDriver
-///\brief Return the ID of the low-level file driver.
+///\brief Return the ID of the low-level file driver.
///\return A low-level driver ID which is the same ID used when the
/// driver was set for the property list. The driver ID is
/// only valid as long as the file driver remains registered.
@@ -229,9 +229,9 @@ void FileAccPropList::getFamily(hsize_t& memb_size, FileAccPropList& memb_plist)
//--------------------------------------------------------------------------
// Function: FileAccPropList::getFamily
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function only in what arguments it
-/// accepts and its return value.
+///\brief This is an overloaded member function, provided for convenience.
+/// It differs from the above function only in what arguments it
+/// accepts and its return value.
///\param memb_size - OUT: Size in bytes of each file member
///\return The file access property list for each file member
///\exception H5::PropListIException
@@ -276,9 +276,9 @@ void FileAccPropList::setSplit( FileAccPropList& meta_plist, FileAccPropList& ra
//--------------------------------------------------------------------------
// Function: FileAccPropList::setSplit
-///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function only in what arguments it
-/// accepts.
+///\brief This is an overloaded member function, provided for convenience.
+/// It differs from the above function only in what arguments it
+/// accepts.
///\param meta_plist - IN: File access plist for the metadata file
///\param raw_plist - IN: File access plist for the raw data file
///\param meta_ext - IN: Metadata filename extension as \c string
@@ -666,9 +666,9 @@ unsigned FileAccPropList::getGcReferences() const
}
//--------------------------------------------------------------------------
-// Function: FileAccPropList destructor
+// Function: FileAccPropList destructor
///\brief Noop destructor
-// Programmer Binh-Minh Ribler - 2000
+// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
FileAccPropList::~FileAccPropList() {}
diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h
index a371326..709d6b0 100644
--- a/c++/src/H5FaccProp.h
+++ b/c++/src/H5FaccProp.h
@@ -25,6 +25,9 @@ class H5_DLLCPP FileAccPropList : public PropList {
public:
static const FileAccPropList DEFAULT;
+ // Creates a file access property list.
+ FileAccPropList();
+
// Modifies this property list to use the H5FD_STDIO driver
void setStdio() const;
@@ -122,9 +125,6 @@ class H5_DLLCPP FileAccPropList : public PropList {
// Returns this class name
virtual H5std_string fromClass () const { return("FileAccPropList"); }
- // Creates a file access property list.
- FileAccPropList();
-
// Copy constructor: creates a copy of a FileAccPropList object.
FileAccPropList( const FileAccPropList& original );
diff --git a/c++/src/H5FcreatProp.h b/c++/src/H5FcreatProp.h
index 4371e0c..af69b7b 100644
--- a/c++/src/H5FcreatProp.h
+++ b/c++/src/H5FcreatProp.h
@@ -26,6 +26,9 @@ class H5_DLLCPP FileCreatPropList : public PropList {
// Default file creation property list.
static const FileCreatPropList DEFAULT;
+ // Creates a file create property list.
+ FileCreatPropList();
+
// Retrieves version information for various parts of a file.
void getVersion( unsigned& super, unsigned& freelist, unsigned& stab, unsigned& shhdr ) const;
@@ -59,9 +62,6 @@ class H5_DLLCPP FileCreatPropList : public PropList {
// Returns this class name
virtual H5std_string fromClass () const { return("FileCreatPropList"); }
- // Creates a file create property list.
- FileCreatPropList();
-
// Copy constructor: creates a copy of a FileCreatPropList object.
FileCreatPropList(const FileCreatPropList& orig);
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp
index 79f2c61..7132105 100644
--- a/c++/src/H5File.cpp
+++ b/c++/src/H5File.cpp
@@ -251,12 +251,10 @@ void H5File::openFile(const H5std_string& name, unsigned int flags, const FileAc
// be investigated. BMR - 2/20/2005
// Modification
// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// ID reference counting mechanism - BMR, Jun 1, 2004
//--------------------------------------------------------------------------
void H5File::reOpen()
{
- // If this object has a valid id, appropriately decrement reference
- // counter and close the id.
try {
close();
}
@@ -488,7 +486,7 @@ void H5File::getVFDHandle(void **file_handle) const
// Function: H5File::getFileName
///\brief Gets the name of this file.
///\return File name
-///\exception H5::IdComponentException
+///\exception H5::FileIException
// Programmer Binh-Minh Ribler - Jul, 2004
//--------------------------------------------------------------------------
H5std_string H5File::getFileName() const
@@ -508,7 +506,7 @@ H5std_string H5File::getFileName() const
///\param dataspace - IN: Dataspace with selection
///\param ref_type - IN: Type of reference; default to \c H5R_DATASET_REGION
///\return A reference
-///\exception H5::IdComponentException
+///\exception H5::FileIException
///\par Description
/// Note that name must be an absolute path to the object in the file.
// Programmer Binh-Minh Ribler - May, 2004
@@ -530,7 +528,7 @@ void* H5File::Reference(const char* name, DataSpace& dataspace, H5R_type_t ref_t
/// a reference to an HDF5 object, not to a dataset region.
///\param name - IN: Name of the object to be referenced
///\return A reference
-///\exception H5::IdComponentException
+///\exception H5::FileIException
///\par Description
// This function passes H5R_OBJECT and -1 to the protected
// function for it to pass to the C API H5Rcreate
@@ -573,7 +571,7 @@ void* H5File::Reference(const H5std_string& name) const
/// \li \c H5G_GROUP - Object is a group.
/// \li \c H5G_DATASET - Object is a dataset.
/// \li \c H5G_TYPE - Object is a named datatype
-///\exception H5::IdComponentException
+///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
H5G_obj_t H5File::getObjType(void *ref, H5R_type_t ref_type) const
@@ -592,7 +590,7 @@ H5G_obj_t H5File::getObjType(void *ref, H5R_type_t ref_type) const
///\param ref - IN: Reference to get region of
///\param ref_type - IN: Type of reference to get region of - default
///\return DataSpace instance
-///\exception H5::IdComponentException
+///\exception H5::FileIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
DataSpace H5File::getRegion(void *ref, H5R_type_t ref_type) const
@@ -675,7 +673,7 @@ void H5File::close()
// implementation of H5File.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-void H5File::throwException(const H5std_string func_name, const H5std_string msg) const
+void H5File::throwException(const H5std_string& func_name, const H5std_string& msg) const
{
H5std_string full_name = func_name;
full_name.insert(0, "H5File::");
@@ -688,7 +686,7 @@ void H5File::throwException(const H5std_string func_name, const H5std_string msg
// Programmer Binh-Minh Ribler - 2000
// Modification
// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// ID reference counting mechanism - BMR, Jun 1, 2004
//--------------------------------------------------------------------------
H5File::~H5File()
{
diff --git a/c++/src/H5File.h b/c++/src/H5File.h
index ddb405a..e489271 100644
--- a/c++/src/H5File.h
+++ b/c++/src/H5File.h
@@ -36,8 +36,8 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
void openFile(const char* name, unsigned int flags,
const FileAccPropList& access_plist = FileAccPropList::DEFAULT);
- // Close this file.
- virtual void close();
+ // Close this file.
+ virtual void close();
// Flushes all buffers associated with this file to disk
void flush(H5F_scope_t scope) const;
@@ -51,8 +51,8 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
// Gets the name of this file.
H5std_string getFileName() const;
- // Retrieves the file size of an opened file.
- hsize_t getFileSize() const;
+ // Retrieves the file size of an opened file.
+ hsize_t getFileSize() const;
// Returns the amount of free space in the file.
hssize_t getFreeSpace() const;
@@ -96,7 +96,7 @@ class H5_DLLCPP H5File : public IdComponent, public CommonFG {
virtual H5std_string fromClass () const { return("H5File"); }
// Throw file exception.
- virtual void throwException(const H5std_string func_name, const H5std_string msg) const;
+ virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const;
// Gets the file id
virtual hid_t getLocId() const;
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index 8725b54..3edcc20 100644
--- a/c++/src/H5Group.cpp
+++ b/c++/src/H5Group.cpp
@@ -128,7 +128,7 @@ void* Group::Reference(const char* name) const
/// It differs from the above function in that it takes an
/// \c std::string for the object's name.
///\param name - IN: Name of the object to be referenced
-// Programmer Binh-Minh Ribler - May, 2004
+// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
void* Group::Reference(const H5std_string& name) const
{
@@ -141,10 +141,10 @@ void* Group::Reference(const H5std_string& name) const
///\param ref - IN: Reference to query
///\param ref_type - IN: Type of reference to query
///\return An object type, which can be one of the following:
-// H5G_LINK Object is a symbolic link.
-// H5G_GROUP Object is a group.
-// H5G_DATASET Object is a dataset.
-// H5G_TYPE Object is a named datatype
+/// H5G_LINK Object is a symbolic link.
+/// H5G_GROUP Object is a group.
+/// H5G_DATASET Object is a dataset.
+/// H5G_TYPE Object is a named datatype
///\exception H5::GroupIException
// Programmer Binh-Minh Ribler - May, 2004
//--------------------------------------------------------------------------
@@ -213,7 +213,7 @@ void Group::close()
// implementation of Group.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
-void Group::throwException(const H5std_string func_name, const H5std_string msg) const
+void Group::throwException(const H5std_string& func_name, const H5std_string& msg) const
{
H5std_string full_name = func_name;
full_name.insert(0, "Group::");
@@ -226,7 +226,7 @@ void Group::throwException(const H5std_string func_name, const H5std_string msg)
// Programmer Binh-Minh Ribler - 2000
// Modification
// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// ID reference counting mechanism - BMR, Jun 1, 2004
//--------------------------------------------------------------------------
Group::~Group()
{
diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h
index a9380c9..38c559d 100644
--- a/c++/src/H5Group.h
+++ b/c++/src/H5Group.h
@@ -22,8 +22,8 @@ namespace H5 {
class H5_DLLCPP Group : public H5Object, public CommonFG {
public:
- // Close this group.
- virtual void close();
+ // Close this group.
+ virtual void close();
// Retrieves the type of object that an object reference points to.
H5G_obj_t getObjType(void *ref, H5R_type_t ref_type) const;
@@ -42,8 +42,8 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Returns this class name
virtual H5std_string fromClass () const { return("Group"); }
- // Throw group exception.
- virtual void throwException(const H5std_string func_name, const H5std_string msg) const;
+ // Throw group exception.
+ virtual void throwException(const H5std_string& func_name, const H5std_string& msg) const;
// for CommonFG to get the file id.
virtual hid_t getLocId() const;
@@ -57,8 +57,8 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
// Destructor
virtual ~Group();
- // Creates a copy of an existing group using its id.
- Group( const hid_t group_id );
+ // Creates a copy of an existing group using its id.
+ Group( const hid_t group_id );
};
#ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp
index 5f56324..86f34d1 100644
--- a/c++/src/H5IdComponent.cpp
+++ b/c++/src/H5IdComponent.cpp
@@ -56,7 +56,7 @@ void IdComponent::incRefCount(const hid_t obj_id) const
{
if (p_valid_id(obj_id))
if (H5Iinc_ref(obj_id) < 0)
- throw IdComponentException(inMemFunc("incRefCount"), "incrementing object ref count failed");
+ throw IdComponentException(inMemFunc("incRefCount"), "incrementing object ref count failed");
}
//--------------------------------------------------------------------------
@@ -80,15 +80,13 @@ void IdComponent::incRefCount() const
void IdComponent::decRefCount(const hid_t obj_id) const
{
if (p_valid_id(obj_id))
- {
- if (H5Idec_ref(obj_id) < 0)
+ 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");
- }
}
//--------------------------------------------------------------------------
@@ -114,7 +112,7 @@ int IdComponent::getCounter(const hid_t obj_id) const
{
counter = H5Iget_ref(obj_id);
if (counter < 0)
- throw IdComponentException(inMemFunc("incRefCount"), "getting object ref count failed - negative");
+ throw IdComponentException(inMemFunc("incRefCount"), "getting object ref count failed - negative");
}
return (counter);
}
@@ -131,9 +129,9 @@ int IdComponent::getCounter() const
}
//--------------------------------------------------------------------------
-// Function: hdfObjectType
-///\brief Given an id, returns the type of the object.
-///return a valid HDF object type, which may be one of the following:
+// Function: hdfObjectType
+///\brief Given an id, returns the type of the object.
+///return a valid HDF object type, which may be one of the following:
/// \li \c H5I_FILE
/// \li \c H5I_GROUP
/// \li \c H5I_DATATYPE
@@ -148,9 +146,9 @@ H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
{
H5I_type_t id_type = H5Iget_type(obj_id);
if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)
- return H5I_BADID; // invalid
+ return H5I_BADID; // invalid
else
- return id_type; // valid type
+ return id_type; // valid type
}
//--------------------------------------------------------------------------
@@ -161,11 +159,10 @@ H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
///\exception H5::IdComponentException when attempt to close the HDF5
/// object fails
// Description
-// The underlaying reference counting in the C library ensures
-// that the current valid id of this object is properly closed.
-// Copy the id from rhs to this object, then increment the
+// First, close the current valid id of this object. Then
+// copy the id from rhs to this object, and increment the
// reference counter of the id to indicate that another object
-// is referencing it.
+// is referencing that id.
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
IdComponent& IdComponent::operator=( const IdComponent& rhs )
@@ -174,10 +171,10 @@ IdComponent& IdComponent::operator=( const IdComponent& rhs )
{
// handling references to this id
try {
- close();
+ close();
}
catch (Exception close_error) {
- throw FileIException(inMemFunc("operator="), close_error.getDetailMsg());
+ throw FileIException(inMemFunc("operator="), close_error.getDetailMsg());
}
// copy the data members from the rhs object
@@ -205,10 +202,10 @@ void IdComponent::setId(const hid_t new_id)
{
// handling references to this old id
try {
- close();
+ close();
}
catch (Exception close_error) {
- throw IdComponentException(inMemFunc("copy"), close_error.getDetailMsg());
+ throw IdComponentException(inMemFunc("copy"), close_error.getDetailMsg());
}
// reset object's id to the given id
@@ -237,8 +234,10 @@ hid_t IdComponent::getId () const
IdComponent::~IdComponent() {}
//
-// Implementation of protected functions for HDF5 Reference Interface.
+// Implementation of protected functions for HDF5 Reference Interface
+// and miscelaneous helpers.
//
+
#ifndef DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
// Function: IdComponent::inMemFunc
diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h
index 5827db4..18bcacb 100644
--- a/c++/src/H5IdComponent.h
+++ b/c++/src/H5IdComponent.h
@@ -39,7 +39,7 @@ class H5_DLLCPP IdComponent {
// Returns an HDF object type, given the object id.
static H5I_type_t getHDFObjType(const hid_t obj_id);
- // Assignment operator.
+ // Assignment operator
IdComponent& operator=( const IdComponent& rhs );
// Sets the identifier of this object to a new value.
@@ -64,7 +64,7 @@ class H5_DLLCPP IdComponent {
H5std_string inMemFunc(const char* func_name) const;
// Returns this class name.
- virtual H5std_string fromClass() const { return("IdComponent");}
+ virtual H5std_string fromClass() const { return("IdComponent");}
#endif // DOXYGEN_SHOULD_SKIP_THIS
@@ -81,17 +81,17 @@ class H5_DLLCPP IdComponent {
// Gets the name of the file, in which an HDF5 object belongs.
H5std_string p_get_file_name() const;
- // Gets the id of the H5 file in which the given object is located.
- hid_t p_get_file_id();
+ // Gets the id of the H5 file in which the given object is located.
+ hid_t p_get_file_id();
- // Creates a reference to an HDF5 object or a dataset region.
- void* p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const;
+ // Creates a reference to an HDF5 object or a dataset region.
+ void* p_reference(const char* name, hid_t space_id, H5R_type_t ref_type) const;
- // Retrieves the type of object that an object reference points to.
- H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
+ // Retrieves the type of object that an object reference points to.
+ H5G_obj_t p_get_obj_type(void *ref, H5R_type_t ref_type) const;
- // Retrieves a dataspace with the region pointed to selected.
- hid_t p_get_region(void *ref, H5R_type_t ref_type) const;
+ // Retrieves a dataspace with the region pointed to selected.
+ hid_t p_get_region(void *ref, H5R_type_t ref_type) const;
// Verifies that the given id is valid.
bool p_valid_id(const hid_t obj_id) const;
diff --git a/c++/src/H5Include.h b/c++/src/H5Include.h
index 2fac773..7b0f37d 100644
--- a/c++/src/H5Include.h
+++ b/c++/src/H5Include.h
@@ -13,10 +13,17 @@
* access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-// Added this line for CC to compile at this time. Will remove it when
-// the problem of "Multiple declaration for RcsId" is fixed. BMR - 10/30/00
+#include <hdf5.h>
-// This problem is removed. I could replace all #include "H5Include.h"
-// by #include <hdf5.h>, but decide not to. BMR - 3/22/01
-
-#include "hdf5.h"
+// Define bool type for platforms that don't support bool yet
+#ifdef BOOL_NOTDEFINED
+#ifdef false
+#undef false
+#endif
+#ifdef true
+#undef true
+#endif
+typedef int bool;
+const bool false = 0;
+const bool true = 1;
+#endif
diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h
index 38cb43e..303d36e 100644
--- a/c++/src/H5IntType.h
+++ b/c++/src/H5IntType.h
@@ -19,6 +19,7 @@
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
+
class H5_DLLCPP IntType : public AtomType {
public:
// Creates a integer type using a predefined type
@@ -34,7 +35,7 @@ class H5_DLLCPP IntType : public AtomType {
void setSign( H5T_sign_t sign ) const;
// Returns this class name
- virtual H5std_string fromClass () const { return("IntType"); }
+ virtual H5std_string fromClass () const { return("IntType"); }
// Default constructor
IntType();
diff --git a/c++/src/H5PredType.cpp b/c++/src/H5PredType.cpp
index 510c659..50f3f16 100644
--- a/c++/src/H5PredType.cpp
+++ b/c++/src/H5PredType.cpp
@@ -178,6 +178,14 @@ const PredType PredType::NATIVE_HBOOL( H5T_NATIVE_HBOOL );
const PredType PredType::NATIVE_INT8( H5T_NATIVE_INT8 );
const PredType PredType::NATIVE_UINT8( H5T_NATIVE_UINT8 );
+const PredType PredType::NATIVE_INT16( H5T_NATIVE_INT16 );
+const PredType PredType::NATIVE_UINT16( H5T_NATIVE_UINT16 );
+const PredType PredType::NATIVE_INT32( H5T_NATIVE_INT32 );
+const PredType PredType::NATIVE_UINT32( H5T_NATIVE_UINT32 );
+const PredType PredType::NATIVE_INT64( H5T_NATIVE_INT64 );
+const PredType PredType::NATIVE_UINT64( H5T_NATIVE_UINT64 );
+
+// LEAST types
#if H5_SIZEOF_INT_LEAST8_T != 0
const PredType PredType::NATIVE_INT_LEAST8( H5T_NATIVE_INT_LEAST8 );
#endif /* H5_SIZEOF_INT_LEAST8_T */
@@ -185,8 +193,6 @@ const PredType PredType::NATIVE_INT_LEAST8( H5T_NATIVE_INT_LEAST8 );
const PredType PredType::NATIVE_UINT_LEAST8( H5T_NATIVE_UINT_LEAST8 );
#endif /* H5_SIZEOF_UINT_LEAST8_T */
-const PredType PredType::NATIVE_INT16( H5T_NATIVE_INT16 );
-const PredType PredType::NATIVE_UINT16( H5T_NATIVE_UINT16 );
#if H5_SIZEOF_INT_LEAST16_T != 0
const PredType PredType::NATIVE_INT_LEAST16( H5T_NATIVE_INT_LEAST16 );
#endif /* H5_SIZEOF_INT_LEAST16_T */
@@ -194,8 +200,6 @@ const PredType PredType::NATIVE_INT_LEAST16( H5T_NATIVE_INT_LEAST16 );
const PredType PredType::NATIVE_UINT_LEAST16( H5T_NATIVE_UINT_LEAST16 );
#endif /* H5_SIZEOF_UINT_LEAST16_T */
-const PredType PredType::NATIVE_INT32( H5T_NATIVE_INT32 );
-const PredType PredType::NATIVE_UINT32( H5T_NATIVE_UINT32 );
#if H5_SIZEOF_INT_LEAST32_T != 0
const PredType PredType::NATIVE_INT_LEAST32( H5T_NATIVE_INT_LEAST32 );
#endif /* H5_SIZEOF_INT_LEAST32_T */
@@ -203,8 +207,6 @@ const PredType PredType::NATIVE_INT_LEAST32( H5T_NATIVE_INT_LEAST32 );
const PredType PredType::NATIVE_UINT_LEAST32( H5T_NATIVE_UINT_LEAST32 );
#endif /* H5_SIZEOF_UINT_LEAST32_T */
-const PredType PredType::NATIVE_INT64( H5T_NATIVE_INT64 );
-const PredType PredType::NATIVE_UINT64( H5T_NATIVE_UINT64 );
#if H5_SIZEOF_INT_LEAST64_T != 0
const PredType PredType::NATIVE_INT_LEAST64( H5T_NATIVE_INT_LEAST64 );
#endif /* H5_SIZEOF_INT_LEAST64_T */
@@ -212,16 +214,34 @@ const PredType PredType::NATIVE_INT_LEAST64( H5T_NATIVE_INT_LEAST64 );
const PredType PredType::NATIVE_UINT_LEAST64( H5T_NATIVE_UINT_LEAST64 );
#endif /* H5_SIZEOF_UINT_LEAST64_T */
-// These are new types and waiting for enabling with C99; currently,
-// the H5T_NATIVE_xxx_FASTn are -1 on sol. 11/14/05
-//const PredType PredType::NATIVE_INT_FAST8( H5T_NATIVE_INT_FAST8 );
-//const PredType PredType::NATIVE_UINT_FAST8( H5T_NATIVE_UINT_FAST8 );
-//const PredType PredType::NATIVE_INT_FAST16( H5T_NATIVE_INT_FAST16 );
-//const PredType PredType::NATIVE_UINT_FAST16( H5T_NATIVE_UINT_FAST16 );
-//const PredType PredType::NATIVE_INT_FAST32( H5T_NATIVE_INT_FAST32 );
-//const PredType PredType::NATIVE_UINT_FAST32( H5T_NATIVE_UINT_FAST32 );
-//const PredType PredType::NATIVE_INT_FAST64( H5T_NATIVE_INT_FAST64 );
-//const PredType PredType::NATIVE_UINT_FAST64( H5T_NATIVE_UINT_FAST64 );
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+const PredType PredType::NATIVE_INT_FAST8( H5T_NATIVE_INT_FAST8 );
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+const PredType PredType::NATIVE_UINT_FAST8( H5T_NATIVE_UINT_FAST8 );
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+const PredType PredType::NATIVE_INT_FAST16( H5T_NATIVE_INT_FAST16 );
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+const PredType PredType::NATIVE_UINT_FAST16( H5T_NATIVE_UINT_FAST16 );
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+const PredType PredType::NATIVE_INT_FAST32( H5T_NATIVE_INT_FAST32 );
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+const PredType PredType::NATIVE_UINT_FAST32( H5T_NATIVE_UINT_FAST32 );
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+const PredType PredType::NATIVE_INT_FAST64( H5T_NATIVE_INT_FAST64 );
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+const PredType PredType::NATIVE_UINT_FAST64( H5T_NATIVE_UINT_FAST64 );
+#endif /* H5_SIZEOF_UINT_FAST64_T */
#endif // DOXYGEN_SHOULD_SKIP_THIS
//--------------------------------------------------------------------------
@@ -239,8 +259,8 @@ PredType& PredType::operator=( const PredType& rhs )
{
if (this != &rhs)
{
- copy(rhs);
- return(*this);
+ copy(rhs);
+ return(*this);
}
}
diff --git a/c++/src/H5PredType.h b/c++/src/H5PredType.h
index 84ca716..3699348 100644
--- a/c++/src/H5PredType.h
+++ b/c++/src/H5PredType.h
@@ -152,47 +152,70 @@ class H5_DLLCPP PredType : public AtomType {
static const PredType NATIVE_INT8;
static const PredType NATIVE_UINT8;
+ static const PredType NATIVE_INT16;
+ static const PredType NATIVE_UINT16;
+ static const PredType NATIVE_INT32;
+ static const PredType NATIVE_UINT32;
+ static const PredType NATIVE_INT64;
+ static const PredType NATIVE_UINT64;
+
+// LEAST types
#if H5_SIZEOF_INT_LEAST8_T != 0
static const PredType NATIVE_INT_LEAST8;
#endif /* H5_SIZEOF_INT_LEAST8_T */
#if H5_SIZEOF_UINT_LEAST8_T != 0
static const PredType NATIVE_UINT_LEAST8;
#endif /* H5_SIZEOF_UINT_LEAST8_T */
- //static const PredType NATIVE_INT_FAST8;
- //static const PredType NATIVE_UINT_FAST8;
- static const PredType NATIVE_INT16;
- static const PredType NATIVE_UINT16;
#if H5_SIZEOF_INT_LEAST16_T != 0
static const PredType NATIVE_INT_LEAST16;
#endif /* H5_SIZEOF_INT_LEAST16_T */
#if H5_SIZEOF_UINT_LEAST16_T != 0
static const PredType NATIVE_UINT_LEAST16;
#endif /* H5_SIZEOF_UINT_LEAST16_T */
- //static const PredType NATIVE_INT_FAST16;
- //static const PredType NATIVE_UINT_FAST16;
- static const PredType NATIVE_INT32;
- static const PredType NATIVE_UINT32;
#if H5_SIZEOF_INT_LEAST32_T != 0
static const PredType NATIVE_INT_LEAST32;
#endif /* H5_SIZEOF_INT_LEAST32_T */
#if H5_SIZEOF_UINT_LEAST32_T != 0
static const PredType NATIVE_UINT_LEAST32;
#endif /* H5_SIZEOF_UINT_LEAST32_T */
- //static const PredType NATIVE_INT_FAST32;
- //static const PredType NATIVE_UINT_FAST32;
- static const PredType NATIVE_INT64;
- static const PredType NATIVE_UINT64;
#if H5_SIZEOF_INT_LEAST64_T != 0
static const PredType NATIVE_INT_LEAST64;
#endif /* H5_SIZEOF_INT_LEAST64_T */
#if H5_SIZEOF_UINT_LEAST64_T != 0
static const PredType NATIVE_UINT_LEAST64;
#endif /* H5_SIZEOF_UINT_LEAST64_T */
- //static const PredType NATIVE_INT_FAST64;
- //static const PredType NATIVE_UINT_FAST64;
+
+// FAST types
+#if H5_SIZEOF_INT_FAST8_T != 0
+ static const PredType NATIVE_INT_FAST8;
+#endif /* H5_SIZEOF_INT_FAST8_T */
+#if H5_SIZEOF_UINT_FAST8_T != 0
+ static const PredType NATIVE_UINT_FAST8;
+#endif /* H5_SIZEOF_UINT_FAST8_T */
+
+#if H5_SIZEOF_INT_FAST16_T != 0
+ static const PredType NATIVE_INT_FAST16;
+#endif /* H5_SIZEOF_INT_FAST16_T */
+#if H5_SIZEOF_UINT_FAST16_T != 0
+ static const PredType NATIVE_UINT_FAST16;
+#endif /* H5_SIZEOF_UINT_FAST16_T */
+
+#if H5_SIZEOF_INT_FAST32_T != 0
+ static const PredType NATIVE_INT_FAST32;
+#endif /* H5_SIZEOF_INT_FAST32_T */
+#if H5_SIZEOF_UINT_FAST32_T != 0
+ static const PredType NATIVE_UINT_FAST32;
+#endif /* H5_SIZEOF_UINT_FAST32_T */
+
+#if H5_SIZEOF_INT_FAST64_T != 0
+ static const PredType NATIVE_INT_FAST64;
+#endif /* H5_SIZEOF_INT_FAST64_T */
+#if H5_SIZEOF_UINT_FAST64_T != 0
+ static const PredType NATIVE_UINT_FAST64;
+#endif /* H5_SIZEOF_UINT_FAST64_T */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// These dummy functions do not inherit from DataType - they'll
diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp
index 3457a9d..d84c98f 100644
--- a/c++/src/H5PropList.cpp
+++ b/c++/src/H5PropList.cpp
@@ -70,18 +70,18 @@ PropList::PropList( const PropList& original ) : IdComponent( original ) {}
PropList::PropList( const hid_t plist_id ) : IdComponent(0)
{
if (H5I_GENPROP_CLS == H5Iget_type(plist_id)) {
- // call C routine to create the new property
- id = H5Pcreate(plist_id);
- if( id < 0 )
- {
- throw PropListIException("PropList constructor", "H5Pcreate failed");
- }
+ // call C routine to create the new property
+ id = H5Pcreate(plist_id);
+ if( id < 0 )
+ {
+ throw PropListIException("PropList constructor", "H5Pcreate failed");
+ }
}
else {
- if(plist_id==H5P_NO_CLASS)
- id=H5P_DEFAULT;
- else
- id=plist_id;
+ if(plist_id==H5P_NO_CLASS)
+ id=H5P_DEFAULT;
+ else
+ id=plist_id;
}
}
@@ -92,24 +92,26 @@ PropList::PropList( const hid_t plist_id ) : IdComponent(0)
///\exception H5::PropListIException
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
void PropList::copy( const PropList& like_plist )
{
// If this object is representing an hdf5 object, close it before
// copying like_plist to it
try {
- close();
+ close();
}
catch (Exception close_error) {
- throw FileIException("PropList::copy", close_error.getDetailMsg());
+ throw PropListIException(inMemFunc("copy"), close_error.getDetailMsg());
}
// call C routine to copy the property list
id = H5Pcopy( like_plist.getId() );
if( id < 0 )
- throw PropListIException(inMemFunc("copy"), "H5Pcopy failed");
+ throw PropListIException(inMemFunc("copy"), "H5Pcopy failed");
}
//--------------------------------------------------------------------------
@@ -170,7 +172,7 @@ void PropList::copyProp( PropList& dest, const H5std_string& name ) const
///\param dest - IN: Destination property list or class
///\param src - IN: Source property list or class
///\param name - IN: Name of the property to copy - \c char pointer
-///\notes This member function will be removed in the next release
+///\note This member function will be removed in the next release
///\exception H5::PropListIException
// Programmer Binh-Minh Ribler - 2000
//--------------------------------------------------------------------------
@@ -621,8 +623,10 @@ PropList PropList::getClassParent() const
///\brief Properly terminates access to this property list.
// Programmer Binh-Minh Ribler - 2000
// Modification
-// Replaced resetIdComponent with decRefCount to use C library
-// ID reference counting mechanism - June 1, 2004
+// - Replaced resetIdComponent() with decRefCount() to use C
+// library ID reference counting mechanism - BMR, Jun 1, 2004
+// - Replaced decRefCount with close() to let the C library
+// handle the reference counting - BMR, Jun 1, 2006
//--------------------------------------------------------------------------
PropList::~PropList()
{
@@ -630,7 +634,7 @@ PropList::~PropList()
close();
}
catch (Exception close_error) {
- cerr << "PropList::~PropList - " << close_error.getDetailMsg() << endl;
+ cerr << "PropList::~PropList - " << close_error.getDetailMsg() << endl;
}
}
diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h
index 01c786d..d27205a 100644
--- a/c++/src/H5PropList.h
+++ b/c++/src/H5PropList.h
@@ -67,13 +67,13 @@ class H5_DLLCPP PropList : public IdComponent {
// Query the value of a property in a property list.
void getProperty(const char* name, void* value) const;
- H5std_string getProperty(const char* name) const;
void getProperty(const H5std_string& name, void* value) const;
+ H5std_string getProperty(const char* name) const;
H5std_string getProperty(const H5std_string& name) const;
// Set a property's value in a property list.
- void setProperty(const char* name, void* charptr) const;
- void setProperty(const char* name, const char* value) const;
+ void setProperty(const char* name, void* value) const;
+ void setProperty(const char* name, const char* charptr) const;
void setProperty(const char* name, H5std_string& strg) const;
void setProperty(const H5std_string& name, void* value) const;
void setProperty(const H5std_string& name, H5std_string& strg) const;
diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h
index 43d549f..997edb4 100644
--- a/c++/src/H5VarLenType.h
+++ b/c++/src/H5VarLenType.h
@@ -22,6 +22,7 @@
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
+
class H5_DLLCPP VarLenType : public DataType {
public:
// Constructor that creates a variable-length datatype based