echelon  0.8.0
hdf5/precursor/group.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_GROUP_HPP
7 #define ECHELON_HDF5_PRECURSOR_GROUP_HPP
8 
9 #include <echelon/hdf5/precursor/object.hpp>
10 #include <echelon/hdf5/precursor/property_list.hpp>
11 
12 #include <string>
13 #include <hdf5.h>
14 #include <functional>
15 
16 namespace echelon
17 {
18 namespace hdf5
19 {
20 namespace precursor
21 {
22 class group
23 {
24 public:
25  group();
26  explicit group(hid_t group_id_);
27  explicit group(const object& other);
28  group(hid_t loc_id_, const std::string& name_, const property_list& lcpl_,
29  const property_list& gcpl_, const property_list& gapl_);
30  group(hid_t loc_id_, const std::string& name_, const property_list& gapl_);
31 
32  ~group();
33 
34  group(const group& other);
35  group(group&& other);
36 
37  group& operator=(const group& other);
38  group& operator=(group&& other);
39 
40  hsize_t iterate_links(H5_index_t index_type, H5_iter_order_t order, hsize_t start_index,
41  std::function<herr_t(hid_t, const char*)> op) const;
42 
43  void visit_links(H5_index_t index_type, H5_iter_order_t order,
44  std::function<herr_t(hid_t, const char*)> visitor) const;
45 
46  void visit_objects(H5_index_t index_type, H5_iter_order_t order,
47  std::function<herr_t(hid_t, const char*)> visitor) const;
48 
49  void remove(const std::string& name) const;
50 
51  hid_t id() const;
52 
53  explicit operator bool() const;
54 private:
55  hid_t group_id_;
56 };
57 }
58 }
59 }
60 
61 #endif
echelon&#39;s core namespace
Definition: attribute.cpp:10