g4tools  5.4.0
irbuf
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_io_irbuf
5 #define tools_io_irbuf
6 
7 #include "../typedefs"
8 
9 #include <vector>
10 #include <string>
11 
12 #ifdef TOOLS_MEM
13 #include "../mem"
14 #endif
15 
16 namespace tools {
17 namespace io {
18 
19 class irbuf {
20 public:
21  virtual ~irbuf() {}
22 public:
23  virtual bool read(uchar&) = 0;
24  virtual bool read(char&) = 0;
25  virtual bool read(uint16&) = 0;
26  virtual bool read(int16&) = 0;
27  virtual bool read(uint32&) = 0;
28  virtual bool read(int32&) = 0;
29  virtual bool read(uint64&) = 0;
30  virtual bool read(int64&) = 0;
31  virtual bool read(float&) = 0;
32  virtual bool read(double&) = 0;
33  virtual bool read(bool&) = 0;
34 
35  virtual bool read_vec(uint32&,uchar*&) = 0;
36  virtual bool read_vec(uint32&,char*&) = 0;
37  virtual bool read_vec(uint32&,uint16*&) = 0;
38  virtual bool read_vec(uint32&,int16*&) = 0;
39  virtual bool read_vec(uint32&,uint32*&) = 0;
40  virtual bool read_vec(uint32&,int32*&) = 0;
41  virtual bool read_vec(uint32&,uint64*&) = 0;
42  virtual bool read_vec(uint32&,int64*&) = 0;
43  virtual bool read_vec(uint32&,float*&) = 0;
44  virtual bool read_vec(uint32&,double*&) = 0;
45  virtual bool read_vec(uint32&,bool*&) = 0;
46 
47  virtual bool read_vec(std::vector<std::string>&) = 0;
48 
49  virtual bool read_cstr(char*&) = 0;
50  virtual bool read_img(uint32&,uint32&,uint32&,uchar*&) = 0;
51 
52  typedef std::vector< std::vector<unsigned int> > std_vec_vec_uint_t;
54 
55  typedef std::vector< std::vector<float> > std_vec_vec_float_t;
57 
58  typedef std::vector< std::vector<double> > std_vec_vec_double_t;
60 
61  typedef std::vector< std::vector<std::string> > std_vec_vec_string_t;
63 public: //helpers
64  template <class T>
65  bool read_std_vec(std::vector<T>& a_x) {
66  uint32 n;
67  T* v;
68  if(!read_vec(n,v)) return false;
69  a_x.resize(n);
70  for(uint32 index=0;index<n;index++) a_x[index] = v[index];
71  delete [] v;
72 #ifdef TOOLS_MEM
73  mem::decrement(s_new().c_str());
74 #endif
75  return true;
76  }
77 
78 };
79 
80 }}
81 
82 #endif
tools::io::irbuf::read
virtual bool read(uint64 &)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, uint32 *&)=0
tools::uint64
unsigned long long uint64
Definition: typedefs:72
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, double *&)=0
tools::int64
long long int64
Definition: typedefs:67
tools::io::irbuf::read_cstr
virtual bool read_cstr(char *&)=0
tools::io::irbuf::read_img
virtual bool read_img(uint32 &, uint32 &, uint32 &, uchar *&)=0
tools::io::irbuf::read
virtual bool read(uchar &)=0
tools::io::irbuf::read
virtual bool read(int16 &)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, uchar *&)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, int16 *&)=0
tools::io::irbuf::read_std_vec_vec
virtual bool read_std_vec_vec(std_vec_vec_float_t &)=0
tools::io::irbuf::read
virtual bool read(float &)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, bool *&)=0
tools::io::irbuf::read_std_vec
bool read_std_vec(std::vector< T > &a_x)
Definition: irbuf:65
tools::io::irbuf::std_vec_vec_double_t
std::vector< std::vector< double > > std_vec_vec_double_t
Definition: irbuf:58
tools::io::irbuf::std_vec_vec_string_t
std::vector< std::vector< std::string > > std_vec_vec_string_t
Definition: irbuf:61
tools::io::irbuf::read
virtual bool read(uint32 &)=0
tools::io::irbuf::~irbuf
virtual ~irbuf()
Definition: irbuf:21
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, char *&)=0
tools::io::irbuf::read
virtual bool read(uint16 &)=0
tools::io::irbuf::std_vec_vec_float_t
std::vector< std::vector< float > > std_vec_vec_float_t
Definition: irbuf:55
tools::io::irbuf::read_vec
virtual bool read_vec(std::vector< std::string > &)=0
tools::uchar
unsigned char uchar
Definition: typedefs:99
tools::int32
int int32
Definition: typedefs:66
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, uint64 *&)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, uint16 *&)=0
tools::io::irbuf::read
virtual bool read(int32 &)=0
tools::io::irbuf::read_std_vec_vec
virtual bool read_std_vec_vec(std_vec_vec_uint_t &)=0
tools::io::irbuf::read_std_vec_vec
virtual bool read_std_vec_vec(std_vec_vec_double_t &)=0
tools
inlined C code : ///////////////////////////////////
Definition: aida_ntuple:26
tools::io::irbuf::read_std_vec_vec
virtual bool read_std_vec_vec(std_vec_vec_string_t &)=0
tools::io::irbuf
Definition: irbuf:19
tools::uint16
unsigned short uint16
Definition: typedefs:102
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, int64 *&)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, float *&)=0
tools::io::irbuf::read
virtual bool read(char &)=0
tools::io::irbuf::read
virtual bool read(int64 &)=0
tools::io::irbuf::std_vec_vec_uint_t
std::vector< std::vector< unsigned int > > std_vec_vec_uint_t
Definition: irbuf:52
tools::uint32
unsigned int uint32
Definition: typedefs:71
tools::io::irbuf::read
virtual bool read(bool &)=0
tools::int16
short int16
Definition: typedefs:100
tools::io::irbuf::read
virtual bool read(double &)=0
tools::io::irbuf::read_vec
virtual bool read_vec(uint32 &, int32 *&)=0