summaryrefslogtreecommitdiffstats
path: root/c++/src/H5DataType.h
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src/H5DataType.h')
-rw-r--r--c++/src/H5DataType.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h
new file mode 100644
index 0000000..0fa1965
--- /dev/null
+++ b/c++/src/H5DataType.h
@@ -0,0 +1,94 @@
+#ifndef _H5DataType_H
+#define _H5DataType_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+class DataType : public H5Object {
+ public:
+ // Default constructor
+ DataType();
+
+ // Creates a datatype given its class and size
+ DataType( const H5T_class_t type_class, size_t size );
+
+ // Copy constructor: makes a copy of the original object
+ DataType( const DataType& original );
+
+ // Creates a new variable-length datatype - not implemented yet
+ // Will be moved into a subclass when completed
+ //DataType vlenCreate( const DataType& base_type );
+
+ // Copies an existing datatype to this datatype object
+ void copy( const DataType& like_type );
+
+ // Returns the datatype class identifier.
+ H5T_class_t getClass() const;
+
+ // Commits a transient datatype to a file; this datatype becomes
+ // a named datatype which can be accessed from the location.
+ void commit( H5Object& loc, const string& name ) const;
+ void commit( H5Object& loc, const char* name ) const;
+
+ // Determines whether this datatype is a named datatype or
+ // a transient datatype.
+ bool committed() const;
+
+ // Finds a conversion function that can handle the conversion
+ // this datatype to the given datatype, dest.
+ H5T_conv_t find( const DataType& dest, H5T_cdata_t **pcdata ) const;
+
+ // Converts data from between specified datatypes.
+ void convert( const DataType& dest, size_t nelmts, void *buf, void *background, PropList& plist ) const;
+
+ // Sets the overflow handler to a specified function.
+ void setOverflow(H5T_overflow_t func) const;
+
+ // Returns a pointer to the current global overflow function.
+ H5T_overflow_t getOverflow(void) const;
+
+ // Determines whether two datatypes are the same. ???
+ bool operator==(const DataType& compared_type ) const;
+
+ // Locks a datatype.
+ void lock() const;
+
+ // Returns the size of a datatype.
+ size_t getSize() const;
+
+ // Returns the base datatype from which a datatype is derived.
+ // Note: not quite right for specific types yet???
+ DataType getSuper() const;
+
+ // Registers a conversion function.
+ void registerFunc(H5T_pers_t pers, const string& name, const DataType& dest, H5T_conv_t func ) const;
+ void registerFunc(H5T_pers_t pers, const char* name, const DataType& dest, H5T_conv_t func ) const;
+
+ // Removes a conversion function from all conversion paths.
+ void unregister( H5T_pers_t pers, const string& name, const DataType& dest, H5T_conv_t func ) const;
+ void unregister( H5T_pers_t pers, const char* name, const DataType& dest, H5T_conv_t func ) const;
+
+ // Tags an opaque datatype.
+ void setTag( const string& tag ) const;
+ void setTag( const char* tag ) const;
+
+ // Gets the tag associated with an opaque datatype.
+ string getTag() const;
+
+ // Used by the API to appropriately close a datatype
+ void p_close() const;
+
+ // Creates a copy of an existing DataType using its id
+ DataType( const hid_t type_id, bool predtype = false );
+
+ virtual ~DataType();
+
+ protected:
+ bool is_predtype; // indicates a type is predefined so
+ // H5Tclose will not be called for it
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif