From 43dd56f0a01b7c242c9d02e45098450edd965f24 Mon Sep 17 00:00:00 2001 From: Binh-Minh Ribler Date: Mon, 26 Sep 2016 23:08:38 -0500 Subject: Purpose: Updated documentation Description: Revised class brief description and other comments for up-to-date info. Platforms tested: Linux/32 2.6 (jam) Linux/64 (platypus) Darwin (osx1010test) --- c++/src/H5ArrayType.h | 2 ++ c++/src/H5AtomType.h | 2 ++ c++/src/H5Attribute.h | 2 ++ c++/src/H5CompType.h | 2 ++ c++/src/H5DataSet.h | 2 ++ c++/src/H5DataSpace.h | 7 ++++++- c++/src/H5DataType.h | 2 ++ c++/src/H5DcreatProp.h | 6 ++++-- c++/src/H5DxferProp.h | 6 ++++-- c++/src/H5EnumType.h | 7 ++++++- c++/src/H5FaccProp.h | 7 ++++++- c++/src/H5FcreatProp.h | 7 ++++++- c++/src/H5File.h | 5 +++-- c++/src/H5FloatType.h | 7 ++++++- c++/src/H5Group.h | 9 +-------- c++/src/H5IdComponent.h | 2 -- c++/src/H5IntType.h | 7 ++++++- c++/src/H5Location.h | 30 +++++++----------------------- c++/src/H5Object.h | 49 ++++++++++++++++++++++--------------------------- c++/src/H5OcreatProp.h | 7 ++++++- c++/src/H5PredType.h | 2 ++ c++/src/H5PropList.h | 6 ++++++ c++/src/H5StrType.h | 7 ++++++- c++/src/H5VarLenType.h | 7 ++++++- 24 files changed, 115 insertions(+), 75 deletions(-) diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h index fb6c711..aa7450c 100644 --- a/c++/src/H5ArrayType.h +++ b/c++/src/H5ArrayType.h @@ -24,6 +24,8 @@ namespace H5 { /*! \class ArrayType \brief Class ArrayType inherits from DataType and provides wrappers for the HDF5's Array Datatypes. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP ArrayType : public DataType { public: diff --git a/c++/src/H5AtomType.h b/c++/src/H5AtomType.h index 792312a..9798efc 100644 --- a/c++/src/H5AtomType.h +++ b/c++/src/H5AtomType.h @@ -27,6 +27,8 @@ namespace H5 { AtomType provides operations on HDF5 atomic datatypes. It also inherits from DataType. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP AtomType : public DataType { public: diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h index 6590c23..5455f76 100644 --- a/c++/src/H5Attribute.h +++ b/c++/src/H5Attribute.h @@ -28,6 +28,8 @@ namespace H5 { Attribute and DataSet are derivatives of AbstractDs. Attribute also inherits from H5Location because an attribute can be used to specify a location. + + Inheritance: multiple H5Location/AbstractDs -> IdComponent */ class H5_DLLCPP Attribute : public AbstractDs, public H5Location { public: diff --git a/c++/src/H5CompType.h b/c++/src/H5CompType.h index bd6d76c..8ecc8bf 100644 --- a/c++/src/H5CompType.h +++ b/c++/src/H5CompType.h @@ -24,6 +24,8 @@ namespace H5 { /*! \class CompType \brief CompType is a derivative of a DataType and operates on HDF5 compound datatypes. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP CompType : public DataType { public: diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h index c97e5b0..dd98d26 100644 --- a/c++/src/H5DataSet.h +++ b/c++/src/H5DataSet.h @@ -27,6 +27,8 @@ namespace H5 { 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. + + Inheritance: multiple H5Object/AbstractDs -> H5Location -> IdComponent */ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { public: diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h index 384f1a3..38d8135 100644 --- a/c++/src/H5DataSpace.h +++ b/c++/src/H5DataSpace.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class DataSpace operates on HDF5 dataspaces. +/*! \class DataSpace + \brief Class DataSpace inherits from IdComponent and provides wrappers for + the HDF5's dataspaces. + + Inheritance: IdComponent +*/ class H5_DLLCPP DataSpace : public IdComponent { public: ///\brief Default DataSpace objects diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h index 7584cff..e332cee 100644 --- a/c++/src/H5DataType.h +++ b/c++/src/H5DataType.h @@ -30,6 +30,8 @@ namespace H5 { DataType inherits from H5Object because a named datatype is an HDF5 object and is a base class of ArrayType, AtomType, CompType, EnumType, and VarLenType. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP DataType : public H5Object { public: diff --git a/c++/src/H5DcreatProp.h b/c++/src/H5DcreatProp.h index fa7b1c1..07c9077 100644 --- a/c++/src/H5DcreatProp.h +++ b/c++/src/H5DcreatProp.h @@ -27,8 +27,10 @@ namespace H5 { class DataType; /*! \class DSetCreatPropList - \brief Class DSetCreatPropList represents the dataset creation property - list. + \brief Class DSetCreatPropList inherits from ObjCreatPropList and provides + wrappers for the HDF5 dataset creation property functions. + + Inheritance: ObjCreatPropList -> PropList -> IdComponent */ class H5_DLLCPP DSetCreatPropList : public ObjCreatPropList { public: diff --git a/c++/src/H5DxferProp.h b/c++/src/H5DxferProp.h index 31fc372..a4af53c 100644 --- a/c++/src/H5DxferProp.h +++ b/c++/src/H5DxferProp.h @@ -25,8 +25,10 @@ namespace H5 { #endif /*! \class DSetMemXferPropList - \brief Class DSetMemXferPropList represents the dataset memory and - transfer property list. + \brief Class DSetCreatPropList inherits from PropList and provides + wrappers for the HDF5 dataset memory and transfer property list. + + Inheritance: ObjCreatPropList -> PropList -> IdComponent */ class H5_DLLCPP DSetMemXferPropList : public PropList { public: diff --git a/c++/src/H5EnumType.h b/c++/src/H5EnumType.h index fe36e8b..bc5b870 100644 --- a/c++/src/H5EnumType.h +++ b/c++/src/H5EnumType.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class EnumType operates on HDF5 enum datatypes. +/*! \class EnumType + \brief EnumType is a derivative of a DataType and operates on HDF5 + enum datatypes. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent +*/ class H5_DLLCPP EnumType : public DataType { public: diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h index 831488c..e96d02f 100644 --- a/c++/src/H5FaccProp.h +++ b/c++/src/H5FaccProp.h @@ -24,7 +24,12 @@ namespace H5 { #endif -//! Class FileAccPropList represents the HDF5 file access property list. +/*! \class FileAccPropList + \brief Class FileAccPropList inherits from PropList and provides + wrappers for the HDF5 file access property list. + + Inheritance: PropList -> IdComponent +*/ class H5_DLLCPP FileAccPropList : public PropList { public: ///\brief Default file access property list. diff --git a/c++/src/H5FcreatProp.h b/c++/src/H5FcreatProp.h index 5d81078..b2a5c2b 100644 --- a/c++/src/H5FcreatProp.h +++ b/c++/src/H5FcreatProp.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class FileCreatPropList represents the HDF5 file create property list. +/*! \class FileCreatPropList + \brief Class FileCreatPropList inherits from PropList and provides + wrappers for the HDF5 file create property list. + + Inheritance: PropList -> IdComponent +*/ class H5_DLLCPP FileCreatPropList : public PropList { public: ///\brief Default file creation property list. diff --git a/c++/src/H5File.h b/c++/src/H5File.h index 7ec92fe..476c5b9 100644 --- a/c++/src/H5File.h +++ b/c++/src/H5File.h @@ -23,9 +23,10 @@ namespace H5 { #endif /*! \class H5File - \brief Class H5File represents an HDF5 file. + \brief Class H5File represents an HDF5 file and inherits from class Group + as file is a root group. - It inherits from H5Location and CommonFG. + Inheritance: Group -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP H5File : public Group { public: diff --git a/c++/src/H5FloatType.h b/c++/src/H5FloatType.h index e88093e..ce816a4 100644 --- a/c++/src/H5FloatType.h +++ b/c++/src/H5FloatType.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class FloatType operates on HDF5 floating point datatype. +/*! \class FloatType + \brief FloatType is a derivative of a DataType and operates on HDF5 + floating point datatype. + + Inheritance: AtomType -> DataType -> H5Object -> H5Location -> IdComponent +*/ class H5_DLLCPP FloatType : public AtomType { public: // Creates a floating-point type using a predefined type. diff --git a/c++/src/H5Group.h b/c++/src/H5Group.h index f1dfce1..b6ec425 100644 --- a/c++/src/H5Group.h +++ b/c++/src/H5Group.h @@ -24,19 +24,12 @@ namespace H5 { /*! \class Group \brief Class Group represents an HDF5 group. - It inherits many operations from H5Location and CommonFG. + Inheritance: H5Object -> H5Location -> IdComponent */ // Class forwarding -//class Group; -//class H5File; class ArrayType; class VarLenType; -/*! \class CommonFG - \brief \a CommonFG is an abstract base class of H5File and Group. - - It provides common operations of H5File and Group. -*/ class H5_DLLCPP Group : public H5Object { public: // Group constructor to create a group or file (aka root group). diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h index 61c8bd6..92765f2 100644 --- a/c++/src/H5IdComponent.h +++ b/c++/src/H5IdComponent.h @@ -17,8 +17,6 @@ #ifndef __IdComponent_H #define __IdComponent_H -// IdComponent represents an HDF5 object that has an identifier. - #ifndef H5_NO_NAMESPACE namespace H5 { #endif diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h index e28f5c2..362a7e3 100644 --- a/c++/src/H5IntType.h +++ b/c++/src/H5IntType.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class IntType operates on HDF5 integer datatype. +/*! \class IntType + \brief IntType is a derivative of a DataType and operates on HDF5 + integer datatype. + + Inheritance: AtomType -> DataType -> H5Object -> H5Location -> IdComponent +*/ class H5_DLLCPP IntType : public AtomType { public: // Creates an integer type using a predefined type diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h index 4f7a717..9ab67d3 100644 --- a/c++/src/H5Location.h +++ b/c++/src/H5Location.h @@ -23,35 +23,19 @@ namespace H5 { #endif -//class H5_DLLCPP H5Location; // forward declaration for UserData4Aiterate - -// Define the operator function pointer for H5Aiterate(). -//typedef void (*attr_operator_t)( H5Location& loc/*in*/, - //const H5std_string attr_name/*in*/, - //void *operator_data/*in,out*/); - -//! User data for attribute iteration - /* class UserData4Aiterate { - public: - attr_operator_t op; - void* opData; - H5Location* location; -}; - */ - -// Class forwarding -class H5_DLLCPP ArrayType; -class H5_DLLCPP VarLenType; - /*! \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. + can be either file, group, dataset, attribute, or named datatype. + Wrappers for H5A functions stay in H5Object. + + Inheritance: IdComponent */ -// 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 forwarding +class H5_DLLCPP ArrayType; +class H5_DLLCPP VarLenType; class H5_DLLCPP H5Location : public IdComponent { public: // Flushes all buffers associated with this location to disk. diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h index 372faed..e570055 100644 --- a/c++/src/H5Object.h +++ b/c++/src/H5Object.h @@ -17,27 +17,32 @@ #ifndef __H5Object_H #define __H5Object_H -//#include "H5Location.h" -//#include "H5Classes.h" // constains forward class declarations - -// H5Object is a baseclass. It has these subclasses: -// Group, DataSet, and DataType. -// DataType, in turn, has several specific datatypes as subclasses. -// Modification: -// Sept 18, 2012: Added class H5Location in between IdComponent and -// H5Object. An H5File now inherits from H5Location. All HDF5 -// wrappers in H5Object are moved up to H5Location. H5Object -// is left mostly empty for future wrappers that are only for -// group, dataset, and named datatype. Note that the reason for -// adding H5Location instead of simply moving H5File to be under -// H5Object is H5File is not an HDF5 object, and renaming H5Object -// to H5Location will risk breaking user applications. -// -BMR -// Apr 2, 2014: Added wrapper getObjName for H5Iget_name #ifndef H5_NO_NAMESPACE namespace H5 { #endif +/*! \class H5Object + \brief Class H5Object is a bridge between H5Location and DataSet, DataType, + and Group. + + Modification: + Sept 18, 2012: Added class H5Location in between IdComponent and + H5Object. An H5File now inherits from H5Location. All HDF5 + wrappers in H5Object are moved up to H5Location. H5Object + is left mostly empty for future wrappers that are only for + group, dataset, and named datatype. Note that the reason for + adding H5Location instead of simply moving H5File to be under + H5Object is H5File is not an HDF5 object, and renaming H5Object + to H5Location will risk breaking user applications. + -BMR + Apr 2, 2014: Added wrapper getObjName for H5Iget_name + Sep 21, 2016: Rearranging classes (HDFFV-9920) moved H5A wrappers back + into H5Object. This way, C functions that takes attribute id + can be in H5Location and those that cannot take attribute id + can be in H5Object. + + Inheritance: H5Location -> IdComponent +*/ // Class forwarding class H5_DLLCPP H5Object; class H5_DLLCPP Attribute; @@ -55,18 +60,8 @@ class UserData4Aiterate { H5Object* location; }; -/*! \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: -// Rearranging classes (HDFFV-9920) moved H5A wrappers back into H5Object. -// That way, C functions that takes attribute id can be in -// H5Location and those that cannot take attribute id can be in H5Object. - // Creates an attribute for the specified object // PropList is currently not used, so always be default. Attribute createAttribute( const char* name, const DataType& type, const DataSpace& space, const PropList& create_plist = PropList::DEFAULT ) const; diff --git a/c++/src/H5OcreatProp.h b/c++/src/H5OcreatProp.h index 0fda34d..0532b3c 100644 --- a/c++/src/H5OcreatProp.h +++ b/c++/src/H5OcreatProp.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class ObjCreatPropList represents the HDF5 object creation property list. +/*! \class ObjCreatPropList + \brief Class ObjCreatPropList inherits from PropList and provides + wrappers for the HDF5 file create property list. + + Inheritance: PropList -> IdComponent +*/ class H5_DLLCPP ObjCreatPropList : public PropList { public: ///\brief Default object creation property list. diff --git a/c++/src/H5PredType.h b/c++/src/H5PredType.h index f560765..1e789ef 100644 --- a/c++/src/H5PredType.h +++ b/c++/src/H5PredType.h @@ -27,6 +27,8 @@ namespace H5 { These types can only be made copy of, not created by H5Tcreate or closed by H5Tclose. They are treated as constants. + + Inheritance: AtomType -> DataType -> H5Object -> H5Location -> IdComponent */ class H5_DLLCPP PredType : public AtomType { public: diff --git a/c++/src/H5PropList.h b/c++/src/H5PropList.h index 7f6ee31..dbd1263 100644 --- a/c++/src/H5PropList.h +++ b/c++/src/H5PropList.h @@ -22,6 +22,12 @@ namespace H5 { #endif //! Class PropList provides operations for generic property lists. +/*! \class PropList + \brief Class PropList inherits from IdComponent and provides wrappers for + the HDF5 generic property list. + + Inheritance: IdComponent +*/ class H5_DLLCPP PropList : public IdComponent { public: ///\brief Default property list diff --git a/c++/src/H5StrType.h b/c++/src/H5StrType.h index 8b3a773..eac6693 100644 --- a/c++/src/H5StrType.h +++ b/c++/src/H5StrType.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! Class StrType operates on HDF5 string datatypes. +/*! \class StrType + \brief StrType is a derivative of a DataType and operates on HDF5 + string datatype. + + Inheritance: AtomType -> DataType -> H5Object -> H5Location -> IdComponent +*/ class H5_DLLCPP StrType : public AtomType { public: // Creates a string type using a predefined type diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h index 672b3db..4898135 100644 --- a/c++/src/H5VarLenType.h +++ b/c++/src/H5VarLenType.h @@ -21,7 +21,12 @@ namespace H5 { #endif -//! VarLenType operates on the HDF5 C's Variable-length Datatypes. +/*! \class VarLenType + \brief VarLenType is a derivative of a DataType and operates on HDF5 + C's Variable-length Datatypes. + + Inheritance: DataType -> H5Object -> H5Location -> IdComponent +*/ class H5_DLLCPP VarLenType : public DataType { public: // Constructor that creates a variable-length datatype based -- cgit v0.12