Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
parameters.h
Go to the documentation of this file.
1 
14 #ifndef PARAMETERS_INCLUDED
15 #define PARAMETERS_INCLUDED
16 
17 #include <string>
18 using std::string;
19 
20 #include <map>
21 #include <valarray>
22 
23 #include "commonParameters.h"
24 #include "communicator.h"
25 #include "checker.h"
26 
27 #include "bridgeIO.h"
28 using Bridge::vout;
29 
31 
41 {
42  private:
43 
44  template<typename T>
45  struct Item
46  {
47  Item(const T& value)
48  : m_value(value), m_flag_set(EXIT_FAILURE) {}
49  //: m_value(value), m_flag_set(false) {}
50 
52  // bool m_flag_set;
54 
55  const T& value() const { return m_value; }
56  // bool is_set() const { return m_flag_set; }
57  int is_set() const { return m_flag_set; }
58 
59  template<typename U>
60  void put(const std::valarray<U>& value)
61  {
62  m_value.resize(value.size());
63  m_value = value;
64  // m_flag_set = true;
65  m_flag_set = EXIT_SUCCESS;
66  }
67 
68  template<typename U>
69  void put(const U& value)
70  {
71  m_value = value;
72  // m_flag_set = true;
73  m_flag_set = EXIT_SUCCESS;
74  }
75  };
76 
77  std::map<string, Item<double> > m_map_double;
78  std::map<string, Item<int> > m_map_int;
79  std::map<string, Item<std::valarray<double> > > m_map_double_vector;
80  std::map<string, Item<std::valarray<int> > > m_map_int_vector;
81  std::map<string, Item<string> > m_map_string;
82  std::map<string, Item<Parameters *> > m_map_Parameters;
84 
85  public:
86 
87  Parameters();
88 
89  virtual ~Parameters() {}
90 
91  void set_double(const string& key, const double value);
92  void set_int(const string& key, const int value);
93  void set_double_vector(const string& key, const std::valarray<double>& value);
94  void set_int_vector(const string& key, const std::valarray<int>& value);
95  void set_string(const string& key, const string& value);
96  void set_Parameters(const string& key, Parameters *const value);
98 
99  double get_double(const string& key) const;
100  int get_int(const string& key) const;
101 
102  std::valarray<double> get_double_vector(const string& key) const;
103 
104  std::valarray<int> get_int_vector(const string& key) const;
105  string get_string(const string& key) const;
106  Parameters *get_Parameters(const string& key) const;
108 
109  int fetch_double(const string& key, double& val) const;
110  int fetch_int(const string& key, int& val) const;
111  int fetch_double_vector(const string& key, std::valarray<double>& val) const;
112  int fetch_int_vector(const string& key, std::valarray<int>& val) const;
113  int fetch_string(const string& key, string& val) const;
115 
116  void Register_double(const string&, const double);
117  void Register_int(const string&, const int);
118  void Register_double_vector(const string&, const std::valarray<double>&);
119  void Register_int_vector(const string&, const std::valarray<int>&);
120  void Register_string(const string&, const string&);
121  void Register_Parameters(const string&, Parameters *const);
122 
123  bool find_double(const string&) const;
124  bool find_int(const string&) const;
125  bool find_double_vector(const string&) const;
126  bool find_int_vector(const string&) const;
127  bool find_string(const string&) const;
128  bool find_Parameters(const string&) const;
129 
130  bool is_set(const string&) const;
131 
132 #ifdef DEBUG
133  void dump(const string& indent = "") const;
134 
135 #endif
136 };
137 #endif
bool find_int(const string &) const
Definition: parameters.cpp:220
const T & value() const
Definition: parameters.h:55
int fetch_VerboseLevel(Bridge::VerboseLevel &val) const
Definition: parameters.cpp:211
BridgeIO vout
Definition: bridgeIO.cpp:207
Item(const T &value)
Definition: parameters.h:47
void Register_string(const string &, const string &)
Definition: parameters.cpp:352
std::valarray< int > get_int_vector(const string &key) const
Definition: parameters.cpp:70
void Register_int(const string &, const int)
Definition: parameters.cpp:331
void set_int(const string &key, const int value)
Definition: parameters.cpp:262
bool find_double(const string &) const
Definition: parameters.cpp:227
bool find_Parameters(const string &) const
Definition: parameters.cpp:255
int get_int(const string &key) const
Definition: parameters.cpp:40
Class for parameters.
Definition: parameters.h:40
std::map< string, Item< std::valarray< int > > > m_map_int_vector
Definition: parameters.h:80
int fetch_int_vector(const string &key, std::valarray< int > &val) const
Definition: parameters.cpp:176
void set_VerboseLevel(Bridge::VerboseLevel value)
Definition: parameters.cpp:317
Parameters * get_Parameters(const string &key) const
Definition: parameters.cpp:100
std::map< string, Item< Parameters * > > m_map_Parameters
Definition: parameters.h:82
int fetch_double_vector(const string &key, std::valarray< double > &val) const
Definition: parameters.cpp:158
void set_string(const string &key, const string &value)
Definition: parameters.cpp:298
bool find_string(const string &) const
Definition: parameters.cpp:248
std::map< string, Item< int > > m_map_int
Definition: parameters.h:78
bool is_set(const string &) const
Definition: parameters.cpp:366
std::map< string, Item< double > > m_map_double
Definition: parameters.h:77
double get_double(const string &key) const
Definition: parameters.cpp:25
std::map< string, Item< std::valarray< double > > > m_map_double_vector
Definition: parameters.h:79
std::valarray< double > get_double_vector(const string &key) const
Definition: parameters.cpp:55
int is_set() const
Definition: parameters.h:57
int fetch_string(const string &key, string &val) const
Definition: parameters.cpp:194
bool find_double_vector(const string &) const
Definition: parameters.cpp:241
void set_double_vector(const string &key, const std::valarray< double > &value)
Definition: parameters.cpp:289
Bridge::VerboseLevel get_VerboseLevel() const
Definition: parameters.cpp:116
std::map< string, Item< string > > m_map_string
Definition: parameters.h:81
void Register_Parameters(const string &, Parameters *const)
Definition: parameters.cpp:359
void put(const std::valarray< U > &value)
Definition: parameters.h:60
virtual ~Parameters()
Definition: parameters.h:89
void set_double(const string &key, const double value)
Definition: parameters.cpp:271
void set_Parameters(const string &key, Parameters *const value)
Definition: parameters.cpp:307
VerboseLevel
Definition: bridgeIO.h:25
void put(const U &value)
Definition: parameters.h:69
void Register_double_vector(const string &, const std::valarray< double > &)
Definition: parameters.cpp:338
void Register_double(const string &, const double)
Definition: parameters.cpp:324
void Register_int_vector(const string &, const std::valarray< int > &)
Definition: parameters.cpp:345
int fetch_double(const string &key, double &val) const
Definition: parameters.cpp:124
string get_string(const string &key) const
Definition: parameters.cpp:85
void set_int_vector(const string &key, const std::valarray< int > &value)
Definition: parameters.cpp:280
bool find_int_vector(const string &) const
Definition: parameters.cpp:234
int fetch_int(const string &key, int &val) const
Definition: parameters.cpp:141
Item< Bridge::VerboseLevel > m_vlevel
Definition: parameters.h:83