summaryrefslogtreecommitdiffstats
path: root/c++
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2005-07-24 17:52:43 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2005-07-24 17:52:43 (GMT)
commitf208550696646adcc6e59e339745b0433e28f770 (patch)
treecd1c0a8b8283d5fa128d988bb335f85dfa390931 /c++
parent3cba75f060cafc0171e48cc3cc2ef17a20bf82ea (diff)
downloadhdf5-f208550696646adcc6e59e339745b0433e28f770.zip
hdf5-f208550696646adcc6e59e339745b0433e28f770.tar.gz
hdf5-f208550696646adcc6e59e339745b0433e28f770.tar.bz2
[svn-r11149] Purpose: Fix bugzilla #406
Description: Added these missing member functions: AbstractDs::getArrayType AbstractDs::getVarLenType CommonFG::openArrayType CommonFG::openVarLenType CompType::getMemberArrayType CompType::getMemberVarLenType Platforms tested: Linux 2.4 (heping) IRIX64 with -n32 (modi4) Linux 2.4 w/PGI (colonelk)
Diffstat (limited to 'c++')
-rw-r--r--c++/src/H5AbstractDs.cpp42
-rw-r--r--c++/src/H5AbstractDs.h12
-rw-r--r--c++/src/H5ArrayType.h6
-rw-r--r--c++/src/H5CommonFG.cpp82
-rw-r--r--c++/src/H5CommonFG.h16
-rw-r--r--c++/src/H5CompType.cpp40
-rw-r--r--c++/src/H5CompType.h16
-rw-r--r--c++/src/H5VarLenType.h6
8 files changed, 179 insertions, 41 deletions
diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp
index 33fadc5..9e54d94 100644
--- a/c++/src/H5AbstractDs.cpp
+++ b/c++/src/H5AbstractDs.cpp
@@ -96,17 +96,17 @@ DataType AbstractDs::getDataType() const
}
//--------------------------------------------------------------------------
-// Function: AbstractDs::getEnumType
-///\brief Returns the enumeration datatype of this abstract dataset which
+// Function: AbstractDs::getArrayType
+///\brief Returns the compound datatype of this abstract dataset which
/// can be a dataset or an attribute.
-///\return EnumType instance
+///\return ArrayType instance
///\exception H5::DataTypeIException
-// Programmer Binh-Minh Ribler - 2000
+// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
-EnumType AbstractDs::getEnumType() const
+ArrayType AbstractDs::getArrayType() const
{
- EnumType enumtype(p_get_type());
- return(enumtype);
+ ArrayType arraytype(p_get_type());
+ return(arraytype);
}
//--------------------------------------------------------------------------
@@ -124,6 +124,20 @@ CompType AbstractDs::getCompType() const
}
//--------------------------------------------------------------------------
+// Function: AbstractDs::getEnumType
+///\brief Returns the enumeration datatype of this abstract dataset which
+/// can be a dataset or an attribute.
+///\return EnumType instance
+///\exception H5::DataTypeIException
+// Programmer Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+EnumType AbstractDs::getEnumType() const
+{
+ EnumType enumtype(p_get_type());
+ return(enumtype);
+}
+
+//--------------------------------------------------------------------------
// Function: AbstractDs::getIntType
///\brief Returns the integer datatype of this abstract dataset which
/// can be a dataset or an attribute.
@@ -166,6 +180,20 @@ StrType AbstractDs::getStrType() const
}
//--------------------------------------------------------------------------
+// Function: AbstractDs::getVarLenType
+///\brief Returns the floating-point datatype of this abstract dataset,
+/// which can be a dataset or an attribute.
+///\return VarLenType instance
+///\exception H5::DataTypeIException
+// Programmer Binh-Minh Ribler - Jul, 2005
+//--------------------------------------------------------------------------
+VarLenType AbstractDs::getVarLenType() const
+{
+ VarLenType varlentype(p_get_type());
+ return(varlentype);
+}
+
+//--------------------------------------------------------------------------
// Function: AbstractDs destructor
///\brief Noop destructor.
// Programmer Binh-Minh Ribler - 2000
diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h
index 9cf6d57..03b87ec 100644
--- a/c++/src/H5AbstractDs.h
+++ b/c++/src/H5AbstractDs.h
@@ -24,6 +24,14 @@
#ifndef H5_NO_NAMESPACE
namespace H5 {
#endif
+
+class ArrayType;
+class CompType;
+class EnumType;
+class FloatType;
+class IntType;
+class StrType;
+class VarLenType;
class H5_DLLCPP AbstractDs : public H5Object {
public:
// Gets a copy the datatype of that this abstract dataset uses.
@@ -34,11 +42,13 @@ class H5_DLLCPP AbstractDs : public H5Object {
DataType getDataType() const;
// Gets a copy of the specific datatype of this abstract dataset.
- EnumType getEnumType() const;
+ ArrayType getArrayType() 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;
diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h
index fb5eb2e..3f1ddc5 100644
--- a/c++/src/H5ArrayType.h
+++ b/c++/src/H5ArrayType.h
@@ -37,6 +37,9 @@ class H5_DLLCPP ArrayType : public DataType {
// Copy constructor: makes copy of the original object.
ArrayType( const ArrayType& original );
+ // Constructor that takes an existing id
+ ArrayType( const hid_t existing_id );
+
// Noop destructor
virtual ~ArrayType();
@@ -44,9 +47,6 @@ class H5_DLLCPP ArrayType : public DataType {
// Default constructor
ArrayType();
- // Constructor that takes an existing id
- ArrayType( const hid_t existing_id );
-
private:
int rank; // Rank of the array
hsize_t* dimensions; // Sizes of the array dimensions
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp
index 7771c40..40558c1 100644
--- a/c++/src/H5CommonFG.cpp
+++ b/c++/src/H5CommonFG.cpp
@@ -639,30 +639,30 @@ DataType CommonFG::openDataType( const string& name ) const
}
//--------------------------------------------------------------------------
-// Function: CommonFG::openEnumType
-///\brief Opens the named enumeration datatype at this location.
-///\param name - IN: Name of the enumeration datatype to open
-///\return EnumType instance
+// Function: CommonFG::openArrayType
+///\brief Opens the named array datatype at this location.
+///\param name - IN: Name of the array datatype to open
+///\return ArrayType instance
///\exception H5::FileIException or H5::GroupIException
-// Programmer Binh-Minh Ribler - 2000
+// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
-EnumType CommonFG::openEnumType( const char* name ) const
+ArrayType CommonFG::openArrayType( const char* name ) const
{
- EnumType enum_type(p_open_data_type(name));
- return(enum_type);
-}
+ ArrayType array_type(p_open_data_type(name));
+ return(array_type);
+}
//--------------------------------------------------------------------------
-// Function: CommonFG::openEnumType
+// Function: CommonFG::openArrayType
///\brief This is an overloaded member function, provided for convenience.
-/// It differs from the above function in that it takes an
+/// It differs from the above function in that it takes an
/// \c std::string for \a name.
-// Programmer Binh-Minh Ribler - 2000
+// Programmer Binh-Minh Ribler - Jul, 2005
//--------------------------------------------------------------------------
-EnumType CommonFG::openEnumType( const string& name ) const
+ArrayType CommonFG::openArrayType( const string& name ) const
{
- return( openEnumType( name.c_str()) );
-}
+ return( openArrayType( name.c_str()) );
+}
//--------------------------------------------------------------------------
// Function: CommonFG::openCompType
@@ -691,6 +691,32 @@ CompType CommonFG::openCompType( const string& name ) const
}
//--------------------------------------------------------------------------
+// Function: CommonFG::openEnumType
+///\brief Opens the named enumeration datatype at this location.
+///\param name - IN: Name of the enumeration datatype to open
+///\return EnumType instance
+///\exception H5::FileIException or H5::GroupIException
+// Programmer Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+EnumType CommonFG::openEnumType( const char* name ) const
+{
+ EnumType enum_type(p_open_data_type(name));
+ return(enum_type);
+}
+
+//--------------------------------------------------------------------------
+// Function: CommonFG::openEnumType
+///\brief This is an overloaded member function, provided for convenience.
+/// It differs from the above function in that it takes an
+/// \c std::string for \a name.
+// Programmer Binh-Minh Ribler - 2000
+//--------------------------------------------------------------------------
+EnumType CommonFG::openEnumType( const string& name ) const
+{
+ return( openEnumType( name.c_str()) );
+}
+
+//--------------------------------------------------------------------------
// Function: CommonFG::openIntType
///\brief Opens the named integer datatype at this location.
///\param name - IN: Name of the integer datatype to open
@@ -769,6 +795,32 @@ StrType CommonFG::openStrType( const string& name ) const
}
//--------------------------------------------------------------------------
+// Function: CommonFG::openVarLenType
+///\brief Opens the named variable length datatype at this location.
+///\param name - IN: Name of the variable length datatype to open
+///\return VarLenType instance
+///\exception H5::FileIException or H5::GroupIException
+// Programmer Binh-Minh Ribler - Jul, 2005
+//--------------------------------------------------------------------------
+VarLenType CommonFG::openVarLenType( const char* name ) const
+{
+ VarLenType varlen_type(p_open_data_type(name));
+ return(varlen_type);
+}
+
+//--------------------------------------------------------------------------
+// Function: CommonFG::openVarLenType
+///\brief This is an overloaded member function, provided for convenience.
+/// It differs from the above function in that it takes an
+/// \c std::string for \a name.
+// Programmer Binh-Minh Ribler - Jul, 2005
+//--------------------------------------------------------------------------
+VarLenType CommonFG::openVarLenType( const string& name ) const
+{
+ return( openVarLenType( name.c_str()) );
+}
+
+//--------------------------------------------------------------------------
// Function: CommonFG::iterateElems
///\brief Iterates a user's function over the entries of a group.
///\param name - IN : Name of group to iterate over
diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h
index 7541627..1ad18f2 100644
--- a/c++/src/H5CommonFG.h
+++ b/c++/src/H5CommonFG.h
@@ -26,6 +26,8 @@ namespace H5 {
class Group;
class H5File;
+class ArrayType;
+class VarLenType;
class H5_DLLCPP CommonFG {
public:
// Creates a new group at this location which can be a file
@@ -111,14 +113,18 @@ class H5_DLLCPP CommonFG {
DataType openDataType(const char* name) const;
DataType openDataType(const string& name) const;
- // Opens a named enumeration datatype in this location.
- EnumType openEnumType(const char* name) const;
- EnumType openEnumType(const string& name) const;
+ // Opens a named array datatype in this location.
+ ArrayType openArrayType(const char* name) const;
+ ArrayType openArrayType(const string& name) const;
// Opens a named compound datatype in this location.
CompType openCompType(const char* name) const;
CompType openCompType(const string& name) const;
+ // Opens a named enumeration datatype in this location.
+ EnumType openEnumType(const char* name) const;
+ EnumType openEnumType(const string& name) const;
+
// Opens a named integer datatype in this location.
IntType openIntType(const char* name) const;
IntType openIntType(const string& name) const;
@@ -131,6 +137,10 @@ class H5_DLLCPP CommonFG {
StrType openStrType(const char* name) const;
StrType openStrType(const string& name) const;
+ // Opens a named variable length datatype in this location.
+ VarLenType openVarLenType(const char* name) const;
+ VarLenType openVarLenType(const string& name) const;
+
/// For subclasses, H5File and Group, to return the correct
/// object id, i.e. file or group id.
virtual hid_t getLocId() const = 0;
diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp
index 2991f10..708d273 100644
--- a/c++/src/H5CompType.cpp
+++ b/c++/src/H5CompType.cpp
@@ -249,7 +249,22 @@ DataType CompType::getMemberDataType( int member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberDataType
+// Function: CompType::getMemberArrayType
+///\brief Returns the array datatype of the specified member in this
+/// compound datatype.
+///\param member_num - IN: Zero-based index of the member
+///\return ArrayType instance
+///\exception H5::DataTypeIException
+// Programmer Binh-Minh Ribler - Jul, 2005
+//--------------------------------------------------------------------------
+ArrayType CompType::getMemberArrayType( int member_num ) const
+{
+ ArrayType arraytype(p_get_member_type(member_num));
+ return(arraytype);
+}
+
+//--------------------------------------------------------------------------
+// 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
@@ -264,7 +279,7 @@ EnumType CompType::getMemberEnumType( int member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberDataType
+// 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
@@ -279,7 +294,7 @@ CompType CompType::getMemberCompType( int member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberDataType
+// Function: CompType::getMemberIntType
///\brief Returns the integer datatype of the specified member in this
/// compound datatype.
///\param member_num - IN: Zero-based index of the member
@@ -294,7 +309,7 @@ IntType CompType::getMemberIntType( int member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberDataType
+// Function: CompType::getMemberFloatType
///\brief Returns the floating-point datatype of the specified member
/// in this compound datatype.
///\param member_num - IN: Zero-based index of the member
@@ -309,7 +324,7 @@ FloatType CompType::getMemberFloatType( int member_num ) const
}
//--------------------------------------------------------------------------
-// Function: CompType::getMemberDataType
+// Function: CompType::getMemberStrType
///\brief Returns the string datatype of the specified member in this
/// compound datatype.
///\param member_num - IN: Zero-based index of the member
@@ -323,6 +338,21 @@ StrType CompType::getMemberStrType( int member_num ) const
return(strtype);
}
+//--------------------------------------------------------------------------
+// Function: CompType::getMemberVarLenType
+///\brief Returns the variable length datatype of the specified member
+/// in this compound datatype.
+///\param member_num - IN: Zero-based index of the member
+///\return VarLenType instance
+///\exception H5::DataTypeIException
+// Programmer Binh-Minh Ribler - Jul, 2005
+//--------------------------------------------------------------------------
+VarLenType CompType::getMemberVarLenType( int member_num ) const
+{
+ VarLenType varlentype(p_get_member_type(member_num));
+ return(varlentype);
+}
+
/* old style of getMemberType - using overloads; new style above
returns the appropriate datatypes but has different named functions.
In the old style, a datatype must be passed into the function.
diff --git a/c++/src/H5CompType.h b/c++/src/H5CompType.h
index bc96969..ae38398 100644
--- a/c++/src/H5CompType.h
+++ b/c++/src/H5CompType.h
@@ -49,14 +49,18 @@ class H5_DLLCPP CompType : public DataType {
// Returns the name of a member of this compound datatype.
string getMemberName( unsigned member_num ) const;
- // Returns the compound datatype of the specified member in
- // this compound datatype.
- CompType getMemberCompType( int member_num ) const;
-
// Returns the generic datatype of the specified member in
// this compound datatype.
DataType getMemberDataType( int member_num ) const;
+ // Returns the array datatype of the specified member in
+ // this compound datatype.
+ ArrayType getMemberArrayType( int member_num ) const;
+
+ // Returns the compound datatype of the specified member in
+ // this compound datatype.
+ CompType getMemberCompType( int member_num ) const;
+
// Returns the enumeration datatype of the specified member in
// this compound datatype.
EnumType getMemberEnumType( int member_num ) const;
@@ -73,6 +77,10 @@ class H5_DLLCPP CompType : public DataType {
// this compound datatype.
StrType getMemberStrType( int member_num ) const;
+ // Returns the variable length datatype of the specified member in
+ // this compound datatype.
+ VarLenType getMemberVarLenType( int member_num ) const;
+
// Returns the number of members in this compound datatype.
int getNmembers() const;
diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h
index c31946a..ded95c6 100644
--- a/c++/src/H5VarLenType.h
+++ b/c++/src/H5VarLenType.h
@@ -31,15 +31,15 @@ class H5_DLLCPP VarLenType : public DataType {
// Copy constructor: makes copy of the original object.
VarLenType( const VarLenType& original );
+ // Constructor that takes an existing id
+ VarLenType( const hid_t existing_id );
+
// Noop destructor
virtual ~VarLenType();
protected:
// Default constructor
VarLenType();
-
- // Constructor that takes an existing id
- VarLenType( const hid_t existing_id );
};
#ifndef H5_NO_NAMESPACE
}