g4tools  5.4.0
group_exists
Go to the documentation of this file.
1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
2 // See the file tools.license for terms.
3 
4 #ifndef tools_hdf5_group_exists
5 #define tools_hdf5_group_exists
6 
7 #include "hdf5_h"
8 
9 #include <string>
10 
11 namespace tools {
12 namespace hdf5 {
13 
15 public:
16  group_exists_struct(const std::string& a_what):m_what(a_what),m_found(false){}
17  virtual ~group_exists_struct() {}
18 protected:
21 public:
22  std::string m_what;
23  bool m_found;
24 };
25 
26 inline herr_t group_exists_visit(hid_t a_id,const char* a_name,void* a_tag){ //a_id = parent of a_name object.
27  group_exists_struct* visitor = (group_exists_struct*)a_tag;
28  H5G_stat_t statbuf;
29  ::H5Gget_objinfo(a_id,a_name,0,&statbuf);
30  switch(statbuf.type) {
31  case H5G_GROUP:{
32  if(a_name==visitor->m_what) {visitor->m_found=true;return 0;} //found
33  //::H5Giterate(a_id,a_name,NULL,group_exists_visit,visitor);
34  }break;
35  default:
36  break;
37  }
38  return 0;
39 }
40 
41 inline bool group_exists(hid_t a_file_id,const std::string& a_name) {
42  group_exists_struct visitor(a_name);
43  ::H5Giterate(a_file_id,".",NULL,group_exists_visit,&visitor);
44  return visitor.m_found;
45 }
46 
47 }}
48 
49 #endif
tools::hdf5::group_exists_visit
herr_t group_exists_visit(hid_t a_id, const char *a_name, void *a_tag)
Definition: group_exists:26
tools::hdf5::group_exists_struct::~group_exists_struct
virtual ~group_exists_struct()
Definition: group_exists:17
tools::hdf5::group_exists
bool group_exists(hid_t a_file_id, const std::string &a_name)
Definition: group_exists:41
tools::hdf5::group_exists_struct::m_what
std::string m_what
Definition: group_exists:22
tools::hdf5::group_exists_struct::group_exists_struct
group_exists_struct(const group_exists_struct &a_from)
Definition: group_exists:19
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::hdf5::group_exists_struct::operator=
group_exists_struct & operator=(const group_exists_struct &)
Definition: group_exists:20
tools::hdf5::group_exists_struct
Definition: group_exists:14
tools::hdf5::group_exists_struct::group_exists_struct
group_exists_struct(const std::string &a_what)
Definition: group_exists:16
tools::hdf5::group_exists_struct::m_found
bool m_found
Definition: group_exists:23
hdf5_h