mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-31 17:10:47 +08:00
[svn-r24291] Description:
- Added a lot of documentation to classes for Reference Manual. - Fixed some format inconsistencies Platforms tested: Linux/ppc64 (ostrich) Linux/32 2.6 (jam) Linux/64 2.6 (koala)/PGI compilers
This commit is contained in:
parent
82beeef272
commit
370e6f3f56
@ -14,11 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class AbstractDs is an abstract base class, from which Attribute and
|
||||
// DataSet inherit. It provides the services that are common to both
|
||||
// Attribute and DataSet. It also inherits from H5Object and passes down
|
||||
// the services that H5Object provides.
|
||||
|
||||
#ifndef __AbstractDs_H
|
||||
#define __AbstractDs_H
|
||||
|
||||
@ -33,6 +28,14 @@ class FloatType;
|
||||
class IntType;
|
||||
class StrType;
|
||||
class VarLenType;
|
||||
|
||||
/*! \class AbstractDs
|
||||
\brief AbstractDs is an abstract base class, inherited by Attribute
|
||||
and DataSet.
|
||||
|
||||
It provides a collection of services that are common to both Attribute
|
||||
and DataSet. AbstractDs inherits from H5Object.
|
||||
*/
|
||||
class H5_DLLCPP AbstractDs {
|
||||
public:
|
||||
// Gets a copy the datatype of that this abstract dataset uses.
|
||||
|
@ -14,9 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class ArrayType inherits from DataType and provides wrappers for the
|
||||
// HDF5 C's Array Datatypes.
|
||||
|
||||
#ifndef __H5ArrayType_H
|
||||
#define __H5ArrayType_H
|
||||
|
||||
@ -24,6 +21,10 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class ArrayType
|
||||
\brief Class ArrayType inherits from DataType and provides wrappers for
|
||||
the HDF5's Array Datatypes.
|
||||
*/
|
||||
class H5_DLLCPP ArrayType : public DataType {
|
||||
public:
|
||||
// Constructor that creates a new array data type based on the
|
||||
|
@ -14,11 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class AtomType is a base class, from which IntType, FloatType, StrType,
|
||||
// and PredType inherit. It provides the services that are common to these
|
||||
// subclasses. It also inherits from DataType and passes down the
|
||||
// services that are common to all the datatypes.
|
||||
|
||||
#ifndef __H5AtomType_H
|
||||
#define __H5AtomType_H
|
||||
|
||||
@ -26,6 +21,13 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class AtomType
|
||||
\brief AtomType is a base class, inherited by IntType, FloatType,
|
||||
StrType, and PredType.
|
||||
|
||||
AtomType provides operations on HDF5 atomic datatypes. It also inherits
|
||||
from DataType.
|
||||
*/
|
||||
class H5_DLLCPP AtomType : public DataType {
|
||||
public:
|
||||
// Returns the byte order of an atomic datatype.
|
||||
|
@ -21,6 +21,14 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class Attribute
|
||||
\brief Class Attribute operates on HDF5 attributes.
|
||||
|
||||
An attribute has many characteristics similar to a dataset, thus both
|
||||
Attribute and DataSet are derivatives of AbstractDs. Attribute also
|
||||
inherits from IdComponent because an attribute is an HDF5 component that
|
||||
is identified by an identifier.
|
||||
*/
|
||||
class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
|
||||
public:
|
||||
// Closes this attribute.
|
||||
@ -74,8 +82,10 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
|
||||
virtual ~Attribute();
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the attribute id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 attribute id
|
||||
|
@ -14,10 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// CommonFG is a protocol class. Its existence is simply to provide the
|
||||
// common services that are provided by H5File and Group. The file or
|
||||
// group in the context of this class is referred to as 'location'.
|
||||
|
||||
#ifndef __CommonFG_H
|
||||
#define __CommonFG_H
|
||||
|
||||
@ -29,6 +25,12 @@ class Group;
|
||||
class H5File;
|
||||
class ArrayType;
|
||||
class VarLenType;
|
||||
|
||||
/*! \class CommonFG
|
||||
\brief \i CommonFG is an abstract base class of H5File and H5Group.
|
||||
|
||||
It provides common operations of H5File and H5Group.
|
||||
*/
|
||||
class H5_DLLCPP CommonFG {
|
||||
public:
|
||||
// Creates a new group at this location which can be a file
|
||||
|
@ -14,9 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class CompType inherits from DataType and provides accesses to a compound
|
||||
// datatype.
|
||||
|
||||
#ifndef __H5CompType_H
|
||||
#define __H5CompType_H
|
||||
|
||||
@ -24,6 +21,10 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class CompType
|
||||
\brief CompType is a derivative of a DataType and operates on HDF5
|
||||
compound datatypes.
|
||||
*/
|
||||
class H5_DLLCPP CompType : public DataType {
|
||||
public:
|
||||
// Default constructor
|
||||
|
@ -37,17 +37,17 @@
|
||||
* closely represent the interfaces of the HDF5 APIs, as followed:
|
||||
*
|
||||
* \verbatim
|
||||
HDF5 C APIs C++ Classes
|
||||
----------- -----------
|
||||
Attribute Interface (H5A) Attribute
|
||||
Datasets Interface (H5D) DataSet
|
||||
Error Interface (H5E) Exception
|
||||
File Interface (H5F) H5File
|
||||
Group Interface (H5G) Group
|
||||
Identifier Interface (H5I) IdComponent
|
||||
Property List Interface (H5P) PropList and subclasses
|
||||
Dataspace Interface (H5S) DataSpace
|
||||
Datatype Interface (H5T) DataType and subclasses
|
||||
HDF5 C APIs C++ Classes
|
||||
----------- -----------
|
||||
Attribute Interface (H5A) Attribute
|
||||
Datasets Interface (H5D) DataSet
|
||||
Error Interface (H5E) Exception
|
||||
File Interface (H5F) H5File
|
||||
Group Interface (H5G) Group
|
||||
Identifier Interface (H5I) IdComponent
|
||||
Property List Interface (H5P) PropList and subclasses
|
||||
Dataspace Interface (H5S) DataSpace
|
||||
Datatype Interface (H5T) DataType and subclasses
|
||||
\endverbatim
|
||||
* \section install_sec Installation
|
||||
*
|
||||
|
@ -14,8 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class DataSet inherits from AbstractDs and provides accesses to a dataset.
|
||||
|
||||
#ifndef __H5DataSet_H
|
||||
#define __H5DataSet_H
|
||||
|
||||
@ -23,6 +21,13 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class DataSet
|
||||
\brief Class DataSet operates on HDF5 datasets.
|
||||
|
||||
An datasets has many characteristics similar to an attribute, thus both
|
||||
Attribute and DataSet are derivatives of AbstractDs. DataSet also
|
||||
inherits from H5Object because a dataset is an HDF5 object.
|
||||
*/
|
||||
class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
|
||||
public:
|
||||
// Close this dataset.
|
||||
@ -98,6 +103,12 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
|
||||
// Destructor: properly terminates access to this dataset.
|
||||
virtual ~DataSet();
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the dataset id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 dataset id
|
||||
|
||||
@ -110,12 +121,6 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
|
||||
// Reads variable or fixed len strings from this dataset.
|
||||
void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
|
||||
void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the dataset id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
};
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class DataSpace operates on HDF5 dataspaces.
|
||||
class H5_DLLCPP DataSpace : public IdComponent {
|
||||
public:
|
||||
// Default DataSpace objects
|
||||
@ -118,15 +119,14 @@ class H5_DLLCPP DataSpace : public IdComponent {
|
||||
// Destructor: properly terminates access to this dataspace.
|
||||
virtual ~DataSpace();
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 dataspace id
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the dataspace id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 dataspace id
|
||||
};
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
|
||||
// Function: DataType overload constructor - dereference
|
||||
///\brief Given a reference, ref, to an hdf5 group, creates a
|
||||
/// DataType object
|
||||
///\param h5file - IN: Location referenced object is in
|
||||
///\param loc - IN: Location referenced object is in
|
||||
///\param ref - IN: Reference pointer
|
||||
///\param ref_type - IN: Reference type - default to H5R_OBJECT
|
||||
///\exception H5::ReferenceException
|
||||
@ -106,8 +106,6 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
|
||||
//--------------------------------------------------------------------------
|
||||
DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(0)
|
||||
{
|
||||
/* H5Location::dereference(loc, ref, ref_type, plist);
|
||||
*/
|
||||
id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference");
|
||||
}
|
||||
|
||||
@ -127,13 +125,6 @@ DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type,
|
||||
DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(0)
|
||||
{
|
||||
id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference");
|
||||
/* try {
|
||||
id = p_dereference(attr.getId(), ref, ref_type, plist);
|
||||
} catch (ReferenceException deref_error) {
|
||||
throw ReferenceException("DataType constructor - located by an Attribute",
|
||||
deref_error.getDetailMsg());
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@ -268,38 +259,12 @@ void DataType::p_commit(hid_t loc_id, const char* name)
|
||||
// Function: DataType::commit
|
||||
///\brief Commits a transient datatype to a file, creating a new
|
||||
/// named datatype
|
||||
///\param loc - IN: A file
|
||||
///\param name - IN: Name of the datatype
|
||||
///\exception H5::DataTypeIException
|
||||
// Programmer Binh-Minh Ribler - 2000
|
||||
//--------------------------------------------------------------------------
|
||||
void DataType::commit(H5File& loc, const char* name)
|
||||
{
|
||||
p_commit(loc.getLocId(), name);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: DataType::commit
|
||||
///\brief This is an overloaded member function, provided for convenience.
|
||||
/// It differs from the above function only in the type of the
|
||||
/// argument \a name.
|
||||
// Programmer Binh-Minh Ribler - 2000
|
||||
//--------------------------------------------------------------------------
|
||||
void DataType::commit(H5File& loc, const H5std_string& name)
|
||||
{
|
||||
p_commit(loc.getLocId(), name.c_str());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: DataType::commit
|
||||
///\brief Commits a transient datatype to a file, creating a new
|
||||
/// named datatype
|
||||
///\param loc - IN: Either a group, dataset, named datatype, or attribute.
|
||||
///\param loc - IN: A location (file, dataset, datatype, or group)
|
||||
///\param name - IN: Name of the datatype
|
||||
///\exception H5::DataTypeIException
|
||||
// Programmer Binh-Minh Ribler - Jan, 2007
|
||||
//--------------------------------------------------------------------------
|
||||
void DataType::commit(H5Object& loc, const char* name)
|
||||
void DataType::commit(H5Location& loc, const char* name)
|
||||
{
|
||||
p_commit(loc.getId(), name);
|
||||
}
|
||||
@ -311,7 +276,7 @@ void DataType::commit(H5Object& loc, const char* name)
|
||||
/// argument \a name.
|
||||
// Programmer Binh-Minh Ribler - 2000
|
||||
//--------------------------------------------------------------------------
|
||||
void DataType::commit(H5Object& loc, const H5std_string& name)
|
||||
void DataType::commit(H5Location& loc, const H5std_string& name)
|
||||
{
|
||||
p_commit(loc.getId(), name.c_str());
|
||||
}
|
||||
|
@ -21,6 +21,13 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class DataType
|
||||
\brief Class DataType provides generic operations on HDF5 datatypes.
|
||||
|
||||
DataType inherits from H5Object because a named datatype is an HDF5
|
||||
object and is a base class of ArrayType, AtomType, CompType, EnumType,
|
||||
and VarLenType.
|
||||
*/
|
||||
class H5_DLLCPP DataType : public H5Object {
|
||||
public:
|
||||
// Creates a datatype given its class and size
|
||||
@ -47,10 +54,8 @@ class H5_DLLCPP DataType : public H5Object {
|
||||
|
||||
// Commits a transient datatype to a file; this datatype becomes
|
||||
// a named datatype which can be accessed from the location.
|
||||
void commit( H5File& loc, const char* name);
|
||||
void commit( H5File& loc, const H5std_string& name);
|
||||
void commit( H5Object& loc, const char* name);
|
||||
void commit( H5Object& loc, const H5std_string& name);
|
||||
void commit(H5Location& loc, const char* name);
|
||||
void commit(H5Location& loc, const H5std_string& name);
|
||||
|
||||
// Determines whether this datatype is a named datatype or
|
||||
// a transient datatype.
|
||||
|
@ -21,6 +21,10 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class DSetCreatPropList
|
||||
\brief Class DSetCreatPropList represents the dataset creation property
|
||||
list.
|
||||
*/
|
||||
class H5_DLLCPP DSetCreatPropList : public PropList {
|
||||
public:
|
||||
// Default dataset creation property list.
|
||||
|
@ -21,6 +21,10 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class DSetMemXferPropList
|
||||
\brief Class DSetMemXferPropList represents the dataset memory and
|
||||
transfer property list.
|
||||
*/
|
||||
class H5_DLLCPP DSetMemXferPropList : public PropList {
|
||||
public:
|
||||
static const DSetMemXferPropList DEFAULT;
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class EnumType operates on HDF5 enum datatypes.
|
||||
class H5_DLLCPP EnumType : public DataType {
|
||||
|
||||
public:
|
||||
|
@ -28,6 +28,11 @@ namespace H5 {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*! \class Exception
|
||||
\brief Exception provides wrappers of HDF5 error handling functions.
|
||||
|
||||
Many classes are derived from Exception for specific HDF5 C interfaces.
|
||||
*/
|
||||
class H5_DLLCPP Exception {
|
||||
public:
|
||||
// Creates an exception with a function name where the failure occurs
|
||||
@ -78,13 +83,13 @@ class H5_DLLCPP Exception {
|
||||
// virtual Destructor
|
||||
virtual ~Exception();
|
||||
|
||||
private:
|
||||
H5std_string detail_message;
|
||||
H5std_string func_name;
|
||||
|
||||
protected:
|
||||
// Default value for detail_message
|
||||
static const char DEFAULT_MSG[];
|
||||
|
||||
private:
|
||||
H5std_string detail_message;
|
||||
H5std_string func_name;
|
||||
};
|
||||
|
||||
class H5_DLLCPP FileIException : public Exception {
|
||||
|
@ -21,7 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
// class for file access properties
|
||||
//! Class FileAccPropList represents the HDF5 file access property list.
|
||||
class H5_DLLCPP FileAccPropList : public PropList {
|
||||
public:
|
||||
static const FileAccPropList DEFAULT;
|
||||
|
@ -21,7 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
// class for file access properties
|
||||
//! Class FileCreatPropList represents the HDF5 file create property list.
|
||||
class H5_DLLCPP FileCreatPropList : public PropList {
|
||||
public:
|
||||
// Default file creation property list.
|
||||
|
@ -163,7 +163,7 @@ H5File::H5File(const H5File& original) : H5Location(original)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::isHdf5
|
||||
// Function: H5File::isHdf5 (static)
|
||||
///\brief Determines whether a file in HDF5 format. (Static)
|
||||
///\param name - IN: Name of the file
|
||||
///\return true if the file is in HDF5 format, and false, otherwise
|
||||
@ -186,7 +186,7 @@ bool H5File::isHdf5(const char* name)
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::isHdf5
|
||||
// Function: H5File::isHdf5 (static)
|
||||
///\brief This is an overloaded member function, provided for convenience.
|
||||
/// It takes an \c H5std_string for \a name. (Static)
|
||||
///\param name - IN: Name of the file - \c H5std_string
|
||||
@ -273,19 +273,6 @@ void H5File::reOpen()
|
||||
throw FileIException("H5File::reOpen", "H5Freopen failed");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::reopen
|
||||
// Purpose: Reopens this file.
|
||||
// Exception H5::FileIException
|
||||
// Description
|
||||
// This function is replaced by the above function reOpen.
|
||||
// Programmer Binh-Minh Ribler - 2000
|
||||
//--------------------------------------------------------------------------
|
||||
void H5File::reopen()
|
||||
{
|
||||
H5File::reOpen();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::getCreatePlist
|
||||
///\brief Returns the creation property list of this file
|
||||
@ -536,6 +523,19 @@ hid_t H5File::getId() const
|
||||
}
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::reopen
|
||||
// Purpose: Reopens this file.
|
||||
// Exception H5::FileIException
|
||||
// Description
|
||||
// This function is replaced by the above function reOpen.
|
||||
// Programmer Binh-Minh Ribler - 2000
|
||||
//--------------------------------------------------------------------------
|
||||
void H5File::reopen()
|
||||
{
|
||||
H5File::reOpen();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5File::p_setId (protected)
|
||||
///\brief Sets the identifier of this object to a new value.
|
||||
|
@ -21,6 +21,11 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class H5File
|
||||
\brief Class H5File represents an HDF5 file.
|
||||
|
||||
It inherits from H5Location and CommonFG.
|
||||
*/
|
||||
class H5_DLLCPP H5File : public H5Location, public CommonFG {
|
||||
public:
|
||||
// Creates or opens an HDF5 file.
|
||||
@ -94,6 +99,12 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG {
|
||||
// H5File destructor.
|
||||
virtual ~H5File();
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the HDF5 file id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 file id
|
||||
|
||||
@ -101,13 +112,6 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG {
|
||||
// constructors taking a string or a char*
|
||||
void p_get_file( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist );
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the HDF5 file id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
};
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class FloatType operates on HDF5 floating point datatype.
|
||||
class H5_DLLCPP FloatType : public AtomType {
|
||||
public:
|
||||
// Creates a floating-point type using a predefined type
|
||||
|
@ -90,7 +90,7 @@ Group::Group(const hid_t existing_id) : H5Object()
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: Group overload constructor - dereference
|
||||
///\brief Given a reference, ref, to an hdf5 group, creates a Group object
|
||||
///\param obj - IN: Specifying location referenced object is in
|
||||
///\param loc - IN: Specifying location referenced object is in
|
||||
///\param ref - IN: Reference pointer
|
||||
///\param ref_type - IN: Reference type - default to H5R_OBJECT
|
||||
///\exception H5::ReferenceException
|
||||
@ -101,8 +101,6 @@ Group::Group(const hid_t existing_id) : H5Object()
|
||||
//--------------------------------------------------------------------------
|
||||
Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(0)
|
||||
{
|
||||
/* H5Location::dereference(loc, ref, ref_type, plist);
|
||||
*/
|
||||
id = H5Location::p_dereference(loc.getId(), ref, ref_type, plist, "constructor - by dereference");
|
||||
}
|
||||
|
||||
@ -118,14 +116,6 @@ Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type, const
|
||||
Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type, const PropList& plist) : H5Object(), id(0)
|
||||
{
|
||||
id = H5Location::p_dereference(attr.getId(), ref, ref_type, plist, "constructor - by dereference");
|
||||
/*
|
||||
try {
|
||||
id = p_dereference(attr.getId(), ref, ref_type, plist);
|
||||
} catch (ReferenceException deref_error) {
|
||||
throw ReferenceException("Group constructor - located by an Attribute",
|
||||
deref_error.getDetailMsg());
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
@ -21,6 +21,11 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class Group
|
||||
\brief Class Group represents an HDF5 group.
|
||||
|
||||
It inherits many operations from H5Location and CommonFG.
|
||||
*/
|
||||
class H5_DLLCPP Group : public H5Object, public CommonFG {
|
||||
public:
|
||||
// Close this group.
|
||||
@ -56,14 +61,14 @@ class H5_DLLCPP Group : public H5Object, public CommonFG {
|
||||
// Creates a copy of an existing group using its id.
|
||||
Group( const hid_t group_id );
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 group id
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Sets the group id.
|
||||
virtual void p_setId(const hid_t new_id);
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
hid_t id; // HDF5 group id
|
||||
};
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
}
|
||||
|
@ -17,13 +17,18 @@
|
||||
#ifndef __IdComponent_H
|
||||
#define __IdComponent_H
|
||||
|
||||
// IdComponent represents an HDF5 object that has an identifier.
|
||||
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
class DataSpace;
|
||||
/*! \class IdComponent
|
||||
\brief Class IdComponent provides wrappers of the C functions that
|
||||
operate on an HDF5 identifier.
|
||||
|
||||
In most cases, the C library handles these operations and an application
|
||||
rarely needs them.
|
||||
*/
|
||||
class H5_DLLCPP IdComponent {
|
||||
public:
|
||||
// Increment reference counter.
|
||||
@ -76,11 +81,10 @@ class H5_DLLCPP IdComponent {
|
||||
virtual ~IdComponent();
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
// Default constructor.
|
||||
IdComponent();
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Gets the name of the file, in which an HDF5 object belongs.
|
||||
H5std_string p_get_file_name() const;
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class IntType operates on HDF5 integer datatype.
|
||||
class H5_DLLCPP IntType : public AtomType {
|
||||
public:
|
||||
// Creates a integer type using a predefined type
|
||||
|
@ -29,6 +29,12 @@ namespace H5 {
|
||||
// calling H5close
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
/*! \class H5Library
|
||||
\brief Class H5Library operates the HDF5 library globably.
|
||||
|
||||
It is not neccessary to construct an instance of H5Library to use the
|
||||
methods.
|
||||
*/
|
||||
class H5_DLLCPP H5Library {
|
||||
public:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
@ -565,9 +565,9 @@ void H5Location::p_reference(void* ref, const char* name, hid_t space_id, H5R_ty
|
||||
///\param ref_type - IN: Type of reference to query, valid values are:
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference.
|
||||
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
|
||||
/// reference. - this is the default
|
||||
/// reference. (default)
|
||||
///\exception H5::ReferenceException
|
||||
///\notes This method is more suitable for a dataset region reference.
|
||||
///\note This method is more suitable for a dataset region reference.
|
||||
// Programmer Binh-Minh Ribler - May, 2004
|
||||
//--------------------------------------------------------------------------
|
||||
void H5Location::reference(void* ref, const char* name, const DataSpace& dataspace, H5R_type_t ref_type) const
|
||||
@ -591,9 +591,9 @@ void H5Location::reference(void* ref, const char* name, const DataSpace& dataspa
|
||||
///\param ref_type - IN: Type of reference to query, valid values are:
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference.
|
||||
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
|
||||
/// reference. - this is the default
|
||||
/// reference. (default)
|
||||
///\exception H5::ReferenceException
|
||||
///\notes This method is more suitable for a dataset region reference.
|
||||
///\note This method is more suitable for a dataset region reference.
|
||||
// Programmer Binh-Minh Ribler - May, 2004
|
||||
//--------------------------------------------------------------------------
|
||||
void H5Location::reference(void* ref, const H5std_string& name, const DataSpace& dataspace, H5R_type_t ref_type) const
|
||||
@ -614,10 +614,10 @@ void H5Location::reference(void* ref, const H5std_string& name, const DataSpace&
|
||||
///\param ref - IN: Reference pointer
|
||||
///\param name - IN: Name of the object to be referenced
|
||||
///\param ref_type - IN: Type of reference to query, valid values are:
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference.
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference (default)
|
||||
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
|
||||
///\exception H5::ReferenceException
|
||||
///\notes This method is more suitable for an object reference.
|
||||
///\note This method is more suitable for an object reference.
|
||||
// Programmer Binh-Minh Ribler - May, 2004
|
||||
//--------------------------------------------------------------------------
|
||||
void H5Location::reference(void* ref, const char* name, H5R_type_t ref_type) const
|
||||
@ -638,9 +638,9 @@ void H5Location::reference(void* ref, const char* name, H5R_type_t ref_type) con
|
||||
///\param ref - IN: Reference pointer
|
||||
///\param name - IN: Name of the object to be referenced - \c H5std_string
|
||||
///\param ref_type - IN: Type of reference to query, valid values are:
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference.
|
||||
/// \li \c H5R_OBJECT - Reference is an object reference (default)
|
||||
/// \li \c H5R_DATASET_REGION - Reference is a dataset region
|
||||
///\notes This method is more suitable for an object reference.
|
||||
///\note This method is more suitable for an object reference.
|
||||
// Programmer Binh-Minh Ribler - May, 2004
|
||||
//--------------------------------------------------------------------------
|
||||
void H5Location::reference(void* ref, const H5std_string& name, H5R_type_t ref_type) const
|
||||
@ -684,7 +684,7 @@ hid_t H5Location::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_ty
|
||||
//--------------------------------------------------------------------------
|
||||
// Function: H5Location::dereference
|
||||
///\brief Dereferences a reference into an HDF5 object, given an HDF5 object.
|
||||
///\param obj - IN: Object specifying the location of the referenced object
|
||||
///\param loc - IN: Location of the referenced object
|
||||
///\param ref - IN: Reference pointer
|
||||
///\param ref_type - IN: Reference type
|
||||
///\exception H5::ReferenceException
|
||||
|
@ -19,10 +19,6 @@
|
||||
|
||||
#include "H5Classes.h" // constains forward class declarations
|
||||
|
||||
// H5Location is an abstract class. It provides a collection of wrappers
|
||||
// of C functions which take location IDs. Most of these were in H5Object
|
||||
// but are now moved here for H5File's access.
|
||||
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
namespace H5 {
|
||||
#endif
|
||||
@ -34,15 +30,23 @@ typedef void (*attr_operator_t)( H5Location& loc/*in*/,
|
||||
const H5std_string attr_name/*in*/,
|
||||
void *operator_data/*in,out*/);
|
||||
|
||||
class UserData4Aiterate { // user data for attribute iteration
|
||||
//! User data for attribute iteration
|
||||
class UserData4Aiterate {
|
||||
public:
|
||||
attr_operator_t op;
|
||||
void* opData;
|
||||
H5Location* location;
|
||||
};
|
||||
|
||||
// An H5Location can be a file, group, dataset, or committed datatype.
|
||||
/*! \class H5Location
|
||||
\brief H5Location is an abstract base class, added in version 1.8.12.
|
||||
|
||||
It provides a collection of wrappers for the C functions that take a
|
||||
location identifier to specify the HDF5 object. The location identifier
|
||||
can be either file, group, dataset, or named datatype.
|
||||
*/
|
||||
// Most of these methods were in H5Object but are now moved here because
|
||||
// a location can be a file, group, dataset, or named datatype. -BMR, 2013-10-1
|
||||
class H5_DLLCPP H5Location : public IdComponent {
|
||||
public:
|
||||
// Creates an attribute for the specified object at this location
|
||||
@ -112,7 +116,7 @@ class H5_DLLCPP H5Location : public IdComponent {
|
||||
void reference(void* ref, const char* name,
|
||||
H5R_type_t ref_type = H5R_OBJECT) const;
|
||||
void reference(void* ref, const H5std_string& name,
|
||||
H5R_type_t ref_type = H5R_DATASET_REGION) const;
|
||||
H5R_type_t ref_type = H5R_OBJECT) const;
|
||||
void reference(void* ref, const char* name, const DataSpace& dataspace,
|
||||
H5R_type_t ref_type = H5R_DATASET_REGION) const;
|
||||
void reference(void* ref, const H5std_string& name, const DataSpace& dataspace,
|
||||
@ -130,8 +134,7 @@ class H5_DLLCPP H5Location : public IdComponent {
|
||||
virtual hid_t getId() const = 0;
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// Default constructor,
|
||||
// Default constructor
|
||||
H5Location();
|
||||
|
||||
// Creates a copy of an existing object giving the location id.
|
||||
@ -140,6 +143,7 @@ class H5_DLLCPP H5Location : public IdComponent {
|
||||
// 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;
|
||||
|
||||
@ -154,11 +158,11 @@ class H5_DLLCPP H5Location : public IdComponent {
|
||||
// Retrieves the type of object that an object reference points to.
|
||||
H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const;
|
||||
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
// Noop destructor.
|
||||
virtual ~H5Location();
|
||||
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
}; /* end class H5Location */
|
||||
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
|
@ -38,6 +38,12 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
/*! \class H5Object
|
||||
\brief Class H5Object is a bridge between H5Location and DataSet, DataType,
|
||||
and Group.
|
||||
|
||||
All the wrappers in H5Object were moved to H5Location.
|
||||
*/
|
||||
class H5_DLLCPP H5Object : public H5Location {
|
||||
public:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
@ -272,22 +272,12 @@ PredType& PredType::operator=( const PredType& rhs )
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// These dummy functions do not inherit from DataType - they'll
|
||||
// throw an DataTypeIException if invoked.
|
||||
void PredType::commit( H5File& loc, const char* name )
|
||||
void PredType::commit(H5Location& loc, const char* name )
|
||||
{
|
||||
throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype. Invalid operation!" );
|
||||
}
|
||||
|
||||
void PredType::commit( H5File& loc, const H5std_string& name )
|
||||
{
|
||||
commit( loc, name.c_str());
|
||||
}
|
||||
|
||||
void PredType::commit( H5Object& loc, const char* name )
|
||||
{
|
||||
throw DataTypeIException("PredType::commit", "Error: Attempted to commit a predefined datatype. Invalid operation!" );
|
||||
}
|
||||
|
||||
void PredType::commit( H5Object& loc, const H5std_string& name )
|
||||
void PredType::commit(H5Location& loc, const H5std_string& name )
|
||||
{
|
||||
commit( loc, name.c_str());
|
||||
}
|
||||
|
@ -14,11 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// PredType holds the definition of all the HDF5 predefined datatypes.
|
||||
// These types can only be made copy of, not created by H5Tcreate or
|
||||
// closed by H5Tclose. They are treated as constants.
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __H5PredType_H
|
||||
#define __H5PredType_H
|
||||
|
||||
@ -36,6 +31,13 @@ namespace H5 {
|
||||
#define H5CPP_EXITED -3 // -3 is less likely to be used elsewhere
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
/*! \class PredType
|
||||
\brief Class PredType holds the definition of all the HDF5 predefined
|
||||
datatypes.
|
||||
|
||||
These types can only be made copy of, not created by H5Tcreate or
|
||||
closed by H5Tclose. They are treated as constants.
|
||||
*/
|
||||
class H5_DLLCPP PredType : public AtomType {
|
||||
public:
|
||||
///\brief Returns this class name.
|
||||
@ -228,21 +230,18 @@ class H5_DLLCPP PredType : public AtomType {
|
||||
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
|
||||
// throw a DataTypeIException if invoked.
|
||||
void commit( H5File& loc, const H5std_string& name );
|
||||
void commit( H5File& loc, const char* name );
|
||||
void commit( H5Object& loc, const H5std_string& name );
|
||||
void commit( H5Object& loc, const char* name );
|
||||
bool committed();
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
// Added this to work around the atexit/global destructor problem.
|
||||
// It'll help to terminate the library after other PredType instances
|
||||
// are closed. -BMR, Mar 30, 2012
|
||||
static const PredType AtExit;
|
||||
/*! \brief This dummy function do not inherit from DataType - it will
|
||||
throw a DataTypeIException if invoked.
|
||||
*/
|
||||
void commit(H5Location& loc, const H5std_string& name );
|
||||
/*! \brief This dummy function do not inherit from DataType - it will
|
||||
throw a DataTypeIException if invoked.
|
||||
*/
|
||||
void commit(H5Location& loc, const char* name );
|
||||
/*! \brief This dummy function do not inherit from DataType - it will
|
||||
throw a DataTypeIException if invoked.
|
||||
*/
|
||||
bool committed();
|
||||
|
||||
protected:
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
@ -254,6 +253,12 @@ class H5_DLLCPP PredType : public AtomType {
|
||||
|
||||
#endif // DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
private:
|
||||
// Added this to work around the atexit/global destructor problem.
|
||||
// It'll help to terminate the library after other PredType instances
|
||||
// are closed. -BMR, Mar 30, 2012
|
||||
static const PredType AtExit;
|
||||
|
||||
};
|
||||
#ifndef H5_NO_NAMESPACE
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class PropList provides operations for generic property lists.
|
||||
class H5_DLLCPP PropList : public IdComponent {
|
||||
public:
|
||||
// Default property list
|
||||
|
@ -21,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! Class StrType operates on HDF5 string datatypes.
|
||||
class H5_DLLCPP StrType : public AtomType {
|
||||
public:
|
||||
// Creates a string type using a predefined type
|
||||
|
@ -14,9 +14,6 @@
|
||||
* access to either file, you may request a copy from help@hdfgroup.org. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
// Class VarLenType inherits from DataType and provides wrappers for
|
||||
// the HDF5 C's Variable-length Datatypes.
|
||||
|
||||
#ifndef __H5VarLenType_H
|
||||
#define __H5VarLenType_H
|
||||
|
||||
@ -24,6 +21,7 @@
|
||||
namespace H5 {
|
||||
#endif
|
||||
|
||||
//! VarLenType operates on the HDF5 C's Variable-length Datatypes.
|
||||
class H5_DLLCPP VarLenType : public DataType {
|
||||
public:
|
||||
// Constructor that creates a variable-length datatype based
|
||||
|
@ -108,16 +108,10 @@ static void test_file_create()
|
||||
// Create file FILE1
|
||||
file1 = new H5File (FILE1, H5F_ACC_EXCL);
|
||||
|
||||
// try to create the same file with H5F_ACC_TRUNC. This should fail
|
||||
// because file1 is the same file and is currently open.
|
||||
|
||||
/* These three are failing with new/PGI compiler, HDFFV-8067
|
||||
The line "H5File file2 (FILE1, H5F_ACC_TRUNC); // should throw E"
|
||||
Results in this message:
|
||||
"terminate called without an active exception
|
||||
Command terminated by signal 6"
|
||||
Commenting it out until it's fixed LK 20120626.
|
||||
*/
|
||||
// Try to create the same file with H5F_ACC_TRUNC. This should fail
|
||||
// because file1 is the same file and is currently open. Skip it on
|
||||
// OpenVMS because it creates another version of the file.
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
try {
|
||||
H5File file2 (FILE1, H5F_ACC_TRUNC); // should throw E
|
||||
|
||||
@ -126,6 +120,7 @@ static void test_file_create()
|
||||
}
|
||||
catch( FileIException E ) // catch truncating existing file
|
||||
{} // do nothing, FAIL expected
|
||||
#endif // H5_HAVE_FILE_VERSIONS
|
||||
|
||||
// Close file1
|
||||
delete file1;
|
||||
@ -141,11 +136,14 @@ static void test_file_create()
|
||||
}
|
||||
catch( FileIException E ) // catching creating existing file
|
||||
{} // do nothing, FAIL expected
|
||||
|
||||
// Test create with H5F_ACC_TRUNC. This will truncate the existing file.
|
||||
file1 = new H5File (FILE1, H5F_ACC_TRUNC);
|
||||
|
||||
// Try to truncate first file again. This should fail because file1
|
||||
// is the same file and is currently open.
|
||||
// Try to create first file again. This should fail because file1
|
||||
// is the same file and is currently open. Skip it on OpenVMS because
|
||||
// it creates another version of the file.
|
||||
#ifndef H5_HAVE_FILE_VERSIONS
|
||||
try {
|
||||
H5File file2 (FILE1, H5F_ACC_TRUNC); // should throw E
|
||||
|
||||
@ -156,7 +154,7 @@ static void test_file_create()
|
||||
{} // do nothing, FAIL expected
|
||||
|
||||
// Try with H5F_ACC_EXCL. This should fail too because the file already
|
||||
// exists.
|
||||
// exists. Skip it on OpenVMS because it creates another version of the file.
|
||||
try {
|
||||
H5File file3 (FILE1, H5F_ACC_EXCL); // should throw E
|
||||
|
||||
@ -165,6 +163,7 @@ static void test_file_create()
|
||||
}
|
||||
catch( FileIException E ) // catching H5F_ACC_EXCL on existing file
|
||||
{} // do nothing, FAIL expected
|
||||
#endif /*H5_HAVE_FILE_VERSIONS*/
|
||||
|
||||
// Get the file-creation template
|
||||
FileCreatPropList tmpl1 = file1->getCreatePlist();
|
||||
@ -387,7 +386,7 @@ static void test_file_size()
|
||||
|
||||
// Check if it's reasonable. It's 0 now.
|
||||
if (free_space < 0 || free_space > 4*KB)
|
||||
issue_fail_msg("test_file_size()", __LINE__, __FILE__, "getFreeSpace returned unreasonable value");
|
||||
issue_fail_msg("test_file_size()", __LINE__, __FILE__, "getFreeSpace returned unreasonable value");
|
||||
|
||||
PASSED();
|
||||
} // end of try block
|
||||
@ -433,54 +432,54 @@ typedef struct s1_t {
|
||||
|
||||
static void test_file_name()
|
||||
{
|
||||
// Output message about test being performed
|
||||
// Output message about test being performed.
|
||||
SUBTEST("File Name");
|
||||
|
||||
H5std_string file_name;
|
||||
try {
|
||||
// Create a file using default properties
|
||||
// Create a file using default properties.
|
||||
H5File file4(FILE4, H5F_ACC_TRUNC);
|
||||
|
||||
// Get file name from the file instance
|
||||
// Get file name from the file instance.
|
||||
file_name = file4.getFileName();
|
||||
verify_val(file_name, FILE4, "H5File::getFileName", __LINE__, __FILE__);
|
||||
|
||||
// Create a group in the root group
|
||||
// Create a group in the root group.
|
||||
Group group(file4.createGroup(GROUPNAME, 0));
|
||||
|
||||
// Get and verify file name via a group
|
||||
// Get and verify file name via a group.
|
||||
file_name = group.getFileName();
|
||||
verify_val(file_name, FILE4, "Group::getFileName", __LINE__, __FILE__);
|
||||
|
||||
// Create the data space
|
||||
// Create the data space.
|
||||
hsize_t dims[RANK] = {NX, NY};
|
||||
DataSpace space(RANK, dims);
|
||||
|
||||
// Create a new dataset
|
||||
// Create a new dataset.
|
||||
DataSet dataset(file4.createDataSet (DSETNAME, PredType::NATIVE_INT, space));
|
||||
|
||||
// Get and verify file name via a dataset
|
||||
// Get and verify file name via a dataset.
|
||||
file_name = dataset.getFileName();
|
||||
verify_val(file_name, FILE4, "DataSet::getFileName", __LINE__, __FILE__);
|
||||
|
||||
// Create an attribute for the dataset
|
||||
// Create an attribute for the dataset.
|
||||
Attribute attr(dataset.createAttribute(DATTRNAME, PredType::NATIVE_INT, space));
|
||||
|
||||
// Get and verify file name
|
||||
// Get and verify file name via an attribute.
|
||||
file_name = attr.getFileName();
|
||||
verify_val(file_name, FILE4, "Attribute::getFileName", __LINE__, __FILE__);
|
||||
|
||||
// Create a compound datatype
|
||||
// Create a compound datatype.
|
||||
CompType comp_type (sizeof(s1_t));
|
||||
|
||||
// Insert fields
|
||||
// Insert fields.
|
||||
comp_type.insertMember("a", HOFFSET(s1_t, a), PredType::NATIVE_INT);
|
||||
comp_type.insertMember("b", HOFFSET(s1_t, b), PredType::NATIVE_FLOAT);
|
||||
|
||||
// Save it on file
|
||||
// Save it on file.
|
||||
comp_type.commit(file4, DTYPENAME);
|
||||
|
||||
// Get and verify file name
|
||||
// Get and verify file name via a committed datatype.
|
||||
comp_type.getFileName();
|
||||
verify_val(file_name, FILE4, "CompType::getFileName", __LINE__, __FILE__);
|
||||
PASSED();
|
||||
|
Loading…
x
Reference in New Issue
Block a user