aboutsummaryrefslogtreecommitdiff
path: root/CarpetDev/CarpetIOF5_standalone/src/file.hh
diff options
context:
space:
mode:
Diffstat (limited to 'CarpetDev/CarpetIOF5_standalone/src/file.hh')
-rw-r--r--CarpetDev/CarpetIOF5_standalone/src/file.hh103
1 files changed, 103 insertions, 0 deletions
diff --git a/CarpetDev/CarpetIOF5_standalone/src/file.hh b/CarpetDev/CarpetIOF5_standalone/src/file.hh
new file mode 100644
index 000000000..44d8ce00c
--- /dev/null
+++ b/CarpetDev/CarpetIOF5_standalone/src/file.hh
@@ -0,0 +1,103 @@
+#ifndef FILE_HH
+#define FILE_HH
+
+#include <string>
+#include <vector>
+
+#include <hdf5.h>
+
+#include "cctk.h"
+
+#include "extending.hh"
+
+
+
+namespace CarpetIOF5 {
+
+ using std::string;
+ using std::vector;
+
+
+
+ namespace F5 {
+
+ class file_t {
+
+ // File mode for creating directories
+ static int const mode = 0755;
+
+ cGH const * const m_cctkGH;
+
+ string const m_path;
+ string const m_basename;
+ string const m_extension;
+ string m_filename;
+
+ bool const m_is_metafile;
+ bool const m_is_datafile;
+
+ hid_t m_hdf5_file;
+
+ hid_t m_hdf5_fiber_contents;
+ hid_t m_hdf5_fiber_global_charts;
+ hid_t m_hdf5_fiber_parameter_space;
+
+ file_t ();
+ file_t (file_t const &);
+ file_t operator= (file_t const &);
+
+ string
+ create_filename (int proc,
+ bool create_directories = false)
+ const;
+
+ static void
+ create_or_check_version (hid_t const hdf5_file);
+
+ public:
+
+ file_t (cGH const * cctkGH,
+ string path,
+ string basename,
+ string extension,
+ bool do_truncate,
+ bool is_metafile,
+ bool is_datafile);
+
+ virtual
+ ~ file_t ();
+
+ cGH const *
+ get_cctkGH ()
+ const;
+
+ hid_t
+ get_hdf5_file ()
+ const;
+
+ hid_t
+ get_hdf5_fiber_parameter_space ()
+ const;
+
+ bool get_is_metafile ()
+ const;
+
+ bool get_is_datafile ()
+ const;
+
+ void
+ get_link_destination (int proc,
+ string & filename,
+ string & objectname)
+ const;
+
+ virtual bool
+ invariant ()
+ const;
+ };
+
+ } // namespace F5
+
+} // namespace CarpetIOF5
+
+#endif // #ifndef FILE_HH