FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
H++with_cache_image/H5Group.hpp
1#ifndef __H5_GROUP_HPP
2#define __H5_GROUP_HPP
3
4#include "H5Object.hpp"
5#include "H5DataType.hpp"
6#include "H5Dataset.hpp"
7#include "H5Property.hpp"
8
9#include <string>
10
11using MemCore::RefPtr;
12
13class H5Group : public H5Object
14{
15protected:
16 H5Group();
17 H5Group(const H5Group&);
18
19 ~H5Group();
20
21public:
22 H5Group(hid_t ParentGroup, const char*groupname, const RefPtr<H5GroupAccess>&AP);
23
24 H5Group(hid_t ParentGroup, const std::string&groupname, const RefPtr<H5GroupAccess>&AP)
25 : H5Group(ParentGroup, groupname.c_str(), AP)
26 {}
27
28 int NumberOfEntries() const;
29
30 hid_t Dopen_id(const char*datasetname, const RefPtr<H5DatasetAccess>&AP) const;
31
32 hid_t Dopen_id(const std::string&datasetname, const RefPtr<H5DatasetAccess>&AP) const
33 {
34 return Dopen_id( datasetname.c_str(), AP );
35 }
36
37 MemCore::RefPtr<H5Group> Gopen(const char*groupname, const RefPtr<H5GroupAccess>&AP) const;
38
39 MemCore::RefPtr<H5Group> Gopen(const std::string&groupname, const RefPtr<H5GroupAccess>&AP) const
40 {
41 return Gopen( groupname.c_str(), AP);
42 }
43
44 MemCore::RefPtr<H5Dataset> Dopen(const char*datasetname, const RefPtr<H5DatasetAccess>&AP) const;
45
46 MemCore::RefPtr<H5Dataset> Dopen(const std::string&datasetname, const RefPtr<H5DatasetAccess>&AP) const
47 {
48 return Dopen( datasetname.c_str(), AP );
49 }
50
51 bool isNamedDataType(const char*groupname) const;
52
53 MemCore::RefPtr<H5DataType> Topen(const char*groupname) const;
54
55 class Member
56 {
58 std::string myName;
59
60 public:
61 Member(const MemCore::RefPtr<H5Group>&theGroup,
62 const std::string&theName);
63
64 ~Member();
65
67 };
68
69 Member member(const std::string&name) const;
70
71 struct Iterator
72 {
73 ~Iterator();
74
75 virtual herr_t apply( hid_t loc_id, const char *name, const H5L_info_t *info) = 0;
76
77 herr_t iterate(const H5Group&G, H5_index_t index_type = H5_INDEX_NAME, H5_iter_order_t order = H5_ITER_NATIVE, hsize_t *idx = 0);
78 };
79
80 herr_t traverse(Iterator&It, H5_index_t index_type = H5_INDEX_NAME, H5_iter_order_t order = H5_ITER_NATIVE, hsize_t *idx = 0) const;
81
82
83 using iterator_f = std::function<herr_t(hid_t loc_id, const char *name, const H5L_info_t *info)>;
84
96 herr_t iterate(const iterator_f&F,
97 H5_index_t index_type = H5_INDEX_NAME, H5_iter_order_t order = H5_ITER_NATIVE, hsize_t *idx = 0) const;
98
103 herr_t rename(const std::string&src, const std::string&dst) const;
104
109static herr_t remove( hid_t loc_id, const char *name);
110static herr_t remove( hid_t loc_id, const std::string&name)
111 {
112 return remove( loc_id, name.c_str());
113 }
114
115 herr_t remove( const char *name) const
116 {
117 return remove( getHid(), name);
118 }
119
120 herr_t remove(const std::string&name) const
121 {
122 return remove( name.c_str());
123 }
124};
125
126
127#endif // __H5_GROUP_HPP
128
Definition H++with_cache_image/H5Group.hpp:56
A group within an HDF5 file.
Definition H++/H5Group.hpp:18
static herr_t remove(hid_t loc_id, const char *name)
Delete an entry from a group.
Definition H++/H5Group.cpp:205
static herr_t remove(hid_t loc_id, const char *name)
Delete an entry from a group.
herr_t iterate(const iterator_f &F, H5_index_t index_type=H5_INDEX_NAME, H5_iter_order_t order=H5_ITER_NATIVE, hsize_t *idx=0) const
Allow for lambda iterator:
herr_t rename(const std::string &src, const std::string &dst) const
Rename a member within the same group.
Base class for groups, datasets and named datatypes.
Definition H++/H5Object.hpp:122
Definition H++/H5Group.hpp:188