summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2004-05-18 04:38:23 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2004-05-18 04:38:23 (GMT)
commit1b28d0a5e3ed457094834452a8a3f46dc63ffb30 (patch)
tree174020ffc165be75898fc3bae240ccd42fb5085b
parent7f7a952e12f8d445a361811fefe417a2d4092deb (diff)
downloadhdf5-1b28d0a5e3ed457094834452a8a3f46dc63ffb30.zip
hdf5-1b28d0a5e3ed457094834452a8a3f46dc63ffb30.tar.gz
hdf5-1b28d0a5e3ed457094834452a8a3f46dc63ffb30.tar.bz2
[svn-r8535] Purpose:
Add more C++ wrappers and documentation - incrementally check-in Description: Added class VarLenType to provide wrapper for: H5Tvlen_create Added wrapper for H5Tis_variable_str to DataType class Tests for the new wrappers will follow in a few weeks. Platforms: SunOS 5.7 (arabica) Linux 2.4 (eirene) Windows 2000
-rw-r--r--c++/src/H5VarLenType.cpp83
-rw-r--r--c++/src/H5VarLenType.h47
2 files changed, 130 insertions, 0 deletions
diff --git a/c++/src/H5VarLenType.cpp b/c++/src/H5VarLenType.cpp
new file mode 100644
index 0000000..45524f0
--- /dev/null
+++ b/c++/src/H5VarLenType.cpp
@@ -0,0 +1,83 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#include <string>
+
+#include "H5Include.h"
+#include "H5RefCounter.h"
+#include "H5Exception.h"
+#include "H5IdComponent.h"
+#include "H5PropList.h"
+#include "H5Object.h"
+#include "H5DataType.h"
+#include "H5VarLenType.h"
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+
+//--------------------------------------------------------------------------
+// Function: VarLenType default constructor
+///\brief Default constructor: Creates a stub variable-length datatype.
+//--------------------------------------------------------------------------
+VarLenType::VarLenType() : DataType() {}
+
+//--------------------------------------------------------------------------
+// Function: VarLenType overloaded constructor
+///\brief Creates an VarLenType object using an existing id.
+///\param existing_id - IN: Id of an existing datatype
+///\exception H5::DataTypeIException
+// Programmer Binh-Minh Ribler - May, 2004
+//--------------------------------------------------------------------------
+VarLenType::VarLenType(const hid_t existing_id) : DataType(existing_id) {}
+
+//--------------------------------------------------------------------------
+// Function: VarLenType copy constructor
+///\brief Copy constructor: makes a copy of the original VarLenType object.
+// Programmer Binh-Minh Ribler - May, 2004
+//--------------------------------------------------------------------------
+VarLenType::VarLenType(const VarLenType& original) : DataType(original) {}
+
+//--------------------------------------------------------------------------
+// Function: VarLenType overloaded constructor
+///\brief Creates a new variable-length datatype based on the specified
+/// \a base_type.
+///\param base_type - IN: Pointer to existing datatype
+///\exception H5::DataTypeIException
+// Description
+// DataType passed by pointer to avoid clashing with copy
+// constructor.
+// Programmer Binh-Minh Ribler - May, 2004
+//--------------------------------------------------------------------------
+VarLenType::VarLenType(const DataType* base_type) : DataType()
+{
+ id = H5Tvlen_create(base_type->getId());
+ if (id <= 0)
+ {
+ throw DataTypeIException("VarLenType constructor",
+ "H5Tvlen_create returns negative value");
+ }
+}
+
+//--------------------------------------------------------------------------
+// Function: VarLenType destructor
+///\brief Properly terminates access to this datatype.
+// Programmer Binh-Minh Ribler - May, 2004
+//--------------------------------------------------------------------------
+VarLenType::~VarLenType() {}
+
+#ifndef H5_NO_NAMESPACE
+} // end namespace
+#endif
diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h
new file mode 100644
index 0000000..8a2572b
--- /dev/null
+++ b/c++/src/H5VarLenType.h
@@ -0,0 +1,47 @@
+// C++ informative line for the emacs editor: -*- C++ -*-
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+// Class VarLenType inherits from DataType and provides wrappers for
+// the HDF5 C's Variable-length Datatypes.
+
+#ifndef _H5VarLenType_H
+#define _H5VarLenType_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+class H5_DLLCPP VarLenType : public DataType {
+ public:
+ // Constructor that creates a variable-length datatype based
+ // on the specified base type.
+ VarLenType(const DataType* base_type);
+
+ // Copy constructor - makes copy of the original object
+ VarLenType( const VarLenType& original );
+
+ // Default destructor
+ virtual ~VarLenType();
+
+ protected:
+ // Default constructor
+ VarLenType();
+
+ // Constructor that takes an existing id
+ VarLenType( const hid_t existing_id );
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif