g4tools  5.4.0
header
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_header
5 #define tools_hdf5_header
6 
7 #include "tools"
8 #include "T_tools"
9 
10 namespace tools {
11 namespace hdf5 {
12 
13 inline bool write_header(hid_t a_file,int a_version = 1) {
14  hid_t header = tools_H5Gcreate(a_file,"header",0);
15  if(header<0) return false;
16  if(!write_atb(header,"writer","exlib")) {::H5Gclose(header);return false;}
17  if(!write_scalar_atb<int>(header,"data_schema_version",a_version)) {::H5Gclose(header);return false;}
18  ::H5Gclose(header);
19  return true;
20 }
21 
22 inline bool read_header(hid_t a_file,std::string& a_writer,int& a_data_schema_version) {
23  hid_t header = tools_H5Gopen(a_file,"header");
24  if(header<0) {a_writer.clear();a_data_schema_version=0;return false;}
25  if(!read_atb(header,"writer",a_writer)) {::H5Gclose(header);a_writer.clear();a_data_schema_version=0;return false;}
26  if(!read_atb(header,"data_schema_version",a_data_schema_version)) {
27  ::H5Gclose(header);
28  a_writer.clear();a_data_schema_version=0;
29  return false;
30  }
31  ::H5Gclose(header);
32  return true;
33 }
34 
35 }}
36 
37 #endif
tools_H5Gcreate
#define tools_H5Gcreate
Definition: hdf5_h:30
tools::hdf5::read_header
bool read_header(hid_t a_file, std::string &a_writer, int &a_data_schema_version)
Definition: header:22
tools::hdf5::write_atb
bool write_atb(hid_t a_id, const std::string &a_name, const std::string &a_data)
Definition: tools:320
tools::hdf5::read_atb
bool read_atb(hid_t a_id, const std::string &a_name, std::string &a_data, unsigned int aSize=100)
Definition: tools:240
tools
T_tools
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::hdf5::write_header
bool write_header(hid_t a_file, int a_version=1)
Definition: header:13
tools_H5Gopen
#define tools_H5Gopen
Definition: hdf5_h:31