echelon  0.8.0
hdf5/precursor/file.hpp
1 // Copyright (c) 2012-2014 Christopher Hinz
2 //
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef ECHELON_HDF5_PRECURSOR_FILE_HPP
7 #define ECHELON_HDF5_PRECURSOR_FILE_HPP
8 
9 #include <echelon/hdf5/precursor/group.hpp>
10 
11 #include <string>
12 #include <hdf5.h>
13 
14 namespace echelon
15 {
16 namespace hdf5
17 {
18 namespace precursor
19 {
20 class file
21 {
22 public:
23  file();
24  explicit file(hid_t file_id_);
25  file(const std::string& name_, unsigned flags_, hid_t fcpl_id_, hid_t fapl_id_);
26  file(const std::string& name_, unsigned flags_, hid_t fapl_id_);
27 
28  ~file();
29 
30  file(const file& other);
31  file(file&& other);
32 
33  file& operator=(const file& other);
34  file& operator=(file&& other);
35 
36  hid_t id() const noexcept;
37 
38  explicit operator bool() const;
39 private:
40  hid_t file_id_;
41 };
42 
43 group mount(const file& mounted_file, const group& mount_point);
44 group mount(const file& mounted_file, const file& mount_point);
45 
46 void unmount(const group& mount_point);
47 }
48 }
49 }
50 
51 #endif
echelon&#39;s core namespace
Definition: attribute.cpp:10