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


scanning
Author(s): Kévin Bolloré, Victor Lamoine - Institut Maupertuis
autogenerated on Thu Dec 19 2019 03:38:24