FDCL Controllers
param.hpp
1 #ifndef FDCL_PARAM_H
2 #define FDCL_PARAM_H
3 
4 #include <iostream>
5 #include <fstream>
6 #include <string>
7 #include <sstream>
8 #include <iomanip> // std::setprecision
9 
10 #include "Eigen/Dense"
11 
12 namespace fdcl
13 {
14 
34 class param
35 {
36 
37 public:
38  std::string file_name;
41  std::fstream file_stream;
42  bool is_open = false;
44  param(void);
45  param(std::string file_name);
46  ~param(void);
47 
52  void open(std::string fname);
53 
54 
58  void close(void);
59 
60 
66  void read(const std::string param_name, bool &value);
67 
68 
74  void read(const std::string param_name, double &value);
75 
76 
82  void read(const std::string param_name, int &value);
83 
84 
90  void read(const std::string param_name, std::string &value);
91 
92 
98  void read(const std::string param_name,
99  Eigen::Matrix<double, 3, 3> &value);
100 
101 
107  void read(const std::string param_name,
108  Eigen::Matrix<double, 4, 1> &value);
109 
110 
116  void read(const std::string param_name,
117  Eigen::Matrix<double, 3, 1> &value);
118 
124  void read(const std::string param_name,
125  Eigen::Matrix<double, 15, 15> &value);
126 
132  void read(const std::string param_name,
133  Eigen::Matrix<double, 2, 1> &value);
134 
135 
143  template<typename Derived>
144  void read(const std::string param_name, Eigen::MatrixBase<Derived> &value);
145 
146 
152  void save(const std::string param_name, bool value);
153 
154 
160  void save(const std::string param_name, double value);
161 
162 
168  void save(const std::string param_name, int value);
169 
170 
176  void save(const std::string param_name, const std::string value);
177 
178 
184  void save(const std::string param_name,
185  Eigen::Matrix<double, 3, 3> &value);
186 
187 
195  template<typename Derived>
196  void save(const std::string param_name, Eigen::MatrixBase<Derived> &value);
197 
198 
199 private:
205  std::string find_line(const std::string param_name);
206 
207 
213  void replace_value(const std::string param_name, std::string new_value);
214 
215 }; // end of fdcl::param class
216 } // end of fdcl namespace
217 
218 #endif
bool is_open
Definition: param.hpp:42
void read(const std::string param_name, bool &value)
void close(void)
Saving and loading parameters.
Definition: param.hpp:34
std::string file_name
Definition: param.hpp:38
std::fstream file_stream
Definition: param.hpp:41
Definition: common_types.hpp:44
void open(std::string fname)
void save(const std::string param_name, bool value)