Electric Tiger DAQ  1.0.0
Data Acquisition Software for the Electric Tiger Experiment
configprocessor.h
1 #ifndef CONIGPROCESSOR_H
2 #define CONIGPROCESSOR_H
3 
4 //C System-Headers
5 //
6 //C++ System headers
7 #include <vector>
8 #include <string>
9 #include <ostream>
10 #include <mutex>
11 //Qt Headers
12 //
13 //OpenCV Headers
14 //
15 //Boost Headers
16 //
17 //Project specific headers
18 //
19 
20 template < typename T >
22 
23  PlainDataParam( std::string name, T val ) : data_name( name ),\
24  data_value( val ) {}
25 
26  friend std::ostream& operator << (std::ostream& stream, PlainDataParam& param) {
27 
28  stream << param.data_name << "," \
29  << param.data_value;
30 
31  return stream;
32  }
33 
34  const std::string data_name;
35  const T data_value;
36 };
37 
39 
40  TCPSocketParam( std::string name, std::string addr, uint port ) : inst_name( name ), \
41  ip_addr( addr ),\
42  port_addr( port ) {}
43 
44  friend std::ostream& operator << (std::ostream& stream, TCPSocketParam& param) {
45 
46  stream << param.inst_name << "," \
47  << param.ip_addr << "," \
48  << param.port_addr;
49 
50  return stream;
51  }
52 
53  const std::string inst_name;
54  const std::string ip_addr;
55  const uint port_addr;
56 };
57 
59 
60  public:
61  ConfigProcessor( std::string file_path );
62 
63  template < typename T >
64  T GetValue( std::string param_name ) {
65 
66  for( const auto& par : data_list ) {
67  if( par.data_name == par.data_name )
68  return par;
69  }
70 
71  for( const auto& par : string_list ) {
72  if( par.data_name == param_name )
73  return par;
74  }
75 
76  for( const auto& par : socket_info_list ) {
77  if( par.inst_name == param_name )
78  return par;
79  }
80  }
81 
82  std::vector< PlainDataParam< double > > data_list;
83  std::vector< PlainDataParam< std::string > > string_list;
84  std::vector< TCPSocketParam > socket_info_list;
85 
86  private:
87 
88  void CheckIfExists( std::string file_path );
89  void Load( std::string file_path );
90 
91  std::mutex monitor;
92 };
93 
94 
95 #endif // CONIGPROCESSOR_H
Definition: configprocessor.h:21
Definition: configprocessor.h:38
Definition: configprocessor.h:58