echelon  0.8.0
property_list.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_PROPERTY_LIST_HPP
7 #define ECHELON_HDF5_PRECURSOR_PROPERTY_LIST_HPP
8 
9 #include <hdf5.h>
10 #include <vector>
11 
12 namespace echelon
13 {
14 namespace hdf5
15 {
16 namespace precursor
17 {
18 class property_list_class
19 {
20 public:
21  explicit property_list_class(hid_t class_id_);
22 
23  hid_t id() const;
24 
25 private:
26  hid_t class_id_;
27 };
28 
29 class property_list
30 {
31 public:
32  explicit property_list(hid_t property_list_id_);
33  explicit property_list(property_list_class cls_);
34  ~property_list();
35 
36  property_list(const property_list& other);
37  property_list(property_list&& other);
38 
39  property_list& operator=(const property_list& other);
40  property_list& operator=(property_list&& other);
41 
42  void set_chunk(const std::vector<hsize_t>& dims);
43  void set_deflate(unsigned int level);
44  void set_shuffle();
45 
46  void set_char_encoding(H5T_cset_t encoding);
47  H5T_cset_t get_char_encoding();
48 
49  std::vector<hsize_t> get_chunk() const;
50 
51  hid_t id() const;
52 
53 private:
54  hid_t property_list_id_;
55 };
56 
57 static const property_list default_property_list = property_list(H5P_DEFAULT);
58 }
59 }
60 }
61 
62 #endif
echelon&#39;s core namespace
Definition: attribute.cpp:10