summaryrefslogtreecommitdiffstats
path: root/c++/src/H5Library.h
diff options
context:
space:
mode:
Diffstat (limited to 'c++/src/H5Library.h')
-rw-r--r--c++/src/H5Library.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/c++/src/H5Library.h b/c++/src/H5Library.h
new file mode 100644
index 0000000..ed2feef
--- /dev/null
+++ b/c++/src/H5Library.h
@@ -0,0 +1,42 @@
+#ifndef _H5Library_H
+#define _H5Library_H
+
+#ifndef H5_NO_NAMESPACE
+namespace H5 {
+#endif
+
+#define NOTATEXIT (-10) // just in case the HDF5 library use more
+ // negative constants. Note: the solution used for the atexit/global
+ // destructors is not reliable, and desperately needs improvement
+ // It is not even working, inifiteloop message still printed when
+ // calling H5close
+
+class H5Library {
+ public:
+ static bool need_cleanup; // indicates if H5close should be called
+
+ // Initializes the HDF5 library.
+ static void open();
+
+ // Flushes all data to disk, closes files, and cleans up memory.
+ static void close();
+
+ // Instructs library not to install atexit cleanup routine
+ static void dontAtExit();
+
+ // Returns the HDF library release number.
+ static void getLibVersion( unsigned& majnum, unsigned& minnum, unsigned& relnum );
+
+ // Verifies that the arguments match the version numbers compiled
+ // into the library
+ static void checkVersion( unsigned majnum, unsigned minnum, unsigned relnum );
+
+ private:
+ // Default constructor - no instance ever created
+ H5Library() {};
+
+};
+#ifndef H5_NO_NAMESPACE
+}
+#endif
+#endif