yaml_utils.hpp
Go to the documentation of this file.
1 #ifndef YAML_UTILS_HPP
2 #define YAML_UTILS_HPP
3 
4 #include <iostream>
5 #include <yaml-cpp/yaml.h>
6 
7 namespace yaml_parser
8 {
9 #define YAML_ITERATOR YAML::const_iterator
10 
11 inline bool parseDouble(const YAML::Node &node,
12  char const * var_name,
13  double &var_value)
14 {
15  if (node[var_name])
16  {
17  var_value = node[var_name].as<double>();
18  return true;
19  }
20  return false;
21 }
22 
23 inline bool parseInt(const YAML::Node &node,
24  char const * var_name,
25  int &var_value)
26 {
27  if (node[var_name])
28  {
29  var_value = node[var_name].as<int>();
30  return true;
31  }
32  return false;
33 }
34 
35 inline bool parseUInt(const YAML::Node &node,
36  char const * var_name,
37  unsigned int &var_value)
38 {
39  if (node[var_name])
40  {
41  var_value = node[var_name].as<unsigned int>();
42  return true;
43  }
44  return false;
45 }
46 
47 inline bool parseString(const YAML::Node &node,
48  char const * var_name,
49  std::string &var_value)
50 {
51  if (node[var_name])
52  {
53  var_value = node[var_name].as<std::string>();
54  return true;
55  }
56  return false;
57 }
58 
59 inline bool parseBool(const YAML::Node &node,
60  char const * var_name,
61  bool &var_value)
62 {
63  if (node[var_name])
64  {
65  var_value = node[var_name];
66  return true;
67  }
68  return false;
69 }
70 
71 inline bool parseVectorB(const YAML::Node &node,
72  char const * var_name,
73  std::vector<bool> &var_value)
74 {
75  if (node[var_name])
76  {
77  var_value.clear();
78  const YAML::Node n = node[var_name];
79  for (int i = 0; i < (int)n.size(); i++)
80  {
81  double value;
82  value = n[i].as<bool>();
83  var_value.push_back(value);
84  }
85  return true;
86  }
87  return false;
88 }
89 
90 inline bool parseVectorD(const YAML::Node &node,
91  char const * var_name,
92  std::vector<double> &var_value)
93 {
94  if (node[var_name])
95  {
96  var_value.clear();
97  const YAML::Node n = node[var_name];
98  for (int i = 0; i < (int)n.size(); i++)
99  {
100  double value;
101  value = n[i].as<double>();
102  var_value.push_back(value);
103  }
104  return true;
105  }
106  return false;
107 }
108 
109 inline const YAML::Node parseNode(const YAML::Node &node,
110  char const * var_name)
111 {
112  if (!node[var_name])
113  {
114  std::cout << "Can't parse node " << var_name << std::endl;
115  }
116  return (node[var_name]);
117 }
118 
119 inline void parseKeyDValue(YAML::const_iterator &it,
120  std::string &key,
121  double &dvalue)
122 {
123  key = it->first.as<std::string>();
124  dvalue = it->second.as<double>();
125 }
126 
127 inline bool yamlNodeFromFileName(std::string filename,
128  YAML::Node & ynode)
129 {
130  bool rtn = true;
131  try
132  {
133  ynode = YAML::LoadFile(filename.c_str());
134  }
135  catch (int e)
136  {
137  std::cout << "could not open %s in yamlNodeFromFileName()" << filename << std::endl;
138  rtn = false;
139  }
140  return (rtn);
141 }
142 
143 } //end namespace
144 
145 #endif
bool parseBool(const YAML::Node &node, char const *var_name, bool &var_value)
Definition: yaml_utils.hpp:59
bool parseVectorD(const YAML::Node &node, char const *var_name, std::vector< double > &var_value)
Definition: yaml_utils.hpp:90
void parseKeyDValue(YAML::const_iterator &it, std::string &key, double &dvalue)
Definition: yaml_utils.hpp:119
bool parseInt(const YAML::Node &node, char const *var_name, int &var_value)
Definition: yaml_utils.hpp:23
const YAML::Node parseNode(const YAML::Node &node, char const *var_name)
Definition: yaml_utils.hpp:109
bool parseString(const YAML::Node &node, char const *var_name, std::string &var_value)
Definition: yaml_utils.hpp:47
bool parseVectorB(const YAML::Node &node, char const *var_name, std::vector< bool > &var_value)
Definition: yaml_utils.hpp:71
bool yamlNodeFromFileName(std::string filename, YAML::Node &ynode)
Definition: yaml_utils.hpp:127
bool parseUInt(const YAML::Node &node, char const *var_name, unsigned int &var_value)
Definition: yaml_utils.hpp:35
bool parseDouble(const YAML::Node &node, char const *var_name, double &var_value)
Definition: yaml_utils.hpp:11


ram_trajectory_files_manager
Author(s): Andres Campos - Institut Maupertuis
autogenerated on Thu Oct 12 2017 02:50:41