tue_config
data.h
Go to the documentation of this file.
1 #ifndef TUE_CONFIG_DATA_H_
2 #define TUE_CONFIG_DATA_H_
3 
4 #include "tue/config/types.h"
5 
6 #include <map>
7 #include <vector>
8 #include "tue/config/label.h"
9 #include "tue/config/node.h"
10 
11 namespace tue
12 {
13 
14 namespace config
15 {
16 
17 class Data
18 {
19 
20 public:
21 
22  Data();
23 
24  virtual ~Data();
25 
27 
29 
31  {
32  return name;
33 // std::map<std::string, Label>::const_iterator it = name_to_label.find(name);
34 // if (it != name_to_label.end())
35 // return it->second;
36 
37 // Label l = name_to_label.size();
38 // name_to_label[name] = l;
39 // label_to_name.push_back(name);
40 // return l;
41  }
42 
43  bool getLabel(const std::string& name, Label& label) const
44  {
45 // std::map<std::string, Label>::const_iterator it = name_to_label.find(name);
46 // if (it == name_to_label.end())
47 // return false;
48 
49 // label = it->second;
50 // return true;
51  label = name;
52  return true;
53  }
54 
55  const std::string& getName(const Label& label) const
56  {
57 // return label_to_name[label];
58  return label;
59  }
60 
61  NodeIdx addNode(const NodePtr& n, NodeIdx parent)
62  {
63  parents.push_back(parent);
64  nodes.push_back(n);
66  return nodes.size() - 1;
67  }
68 
69  inline NodeIdx root() const { return 0; }
70 
71  inline NodeIdx getParent(NodeIdx n) const { return parents[n]; }
72  inline NodeIdx getRightSibling(NodeIdx n) const { return right_siblings[n]; }
73 
74  inline void getParent(NodeIdx n, NodeIdx parent) { parents[n] = parent; }
75  inline void setRightSibling(NodeIdx n, NodeIdx sibling) { right_siblings[n] = sibling; }
76 
80 
82 
83 // friend std::ostream& operator<< (std::ostream& out, const Data& d);
84 
85 };
86 
87 }
88 
89 } // end namespace tue
90 
91 #endif
tue::config::Data::getName
const std::string & getName(const Label &label) const
Definition: data.h:55
std::string
types.h
tue::config::Data::source_
std::string source_
Definition: data.h:81
vector
std::vector::size
T size(T... args)
tue::config::NodeIdx
unsigned int NodeIdx
Definition: data_pointer.h:12
tue::config::Data::Data
Data()
Definition: data.cpp:16
tue::config::Data::parents
std::vector< NodeIdx > parents
Definition: data.h:78
tue::config::Data::root
NodeIdx root() const
Definition: data.h:69
tue::config::Data::getOrAddLabel
Label getOrAddLabel(const std::string &name)
Definition: data.h:30
tue::config::Data::right_siblings
std::vector< NodeIdx > right_siblings
Definition: data.h:79
tue::config::Data::label_to_name
std::vector< std::string > label_to_name
Definition: data.h:28
std::vector::push_back
T push_back(T... args)
tue::config::Data::nodes
std::vector< NodePtr > nodes
Definition: data.h:77
tue::config::Data::~Data
virtual ~Data()
Definition: data.cpp:23
tue::config::Data::setRightSibling
void setRightSibling(NodeIdx n, NodeIdx sibling)
Definition: data.h:75
node.h
tue::config::Data::addNode
NodeIdx addNode(const NodePtr &n, NodeIdx parent)
Definition: data.h:61
tue::config::Data::name_to_label
std::map< std::string, Label > name_to_label
Definition: data.h:26
map
label.h
tue::config::Data
Definition: data.h:17
tue::config::Data::getLabel
bool getLabel(const std::string &name, Label &label) const
Definition: data.h:43
tue::config::Data::getParent
NodeIdx getParent(NodeIdx n) const
Definition: data.h:71
tue::config::NodePtr
boost::shared_ptr< Node > NodePtr
Definition: types.h:21
tue::config::Data::getParent
void getParent(NodeIdx n, NodeIdx parent)
Definition: data.h:74
tue::config::Data::getRightSibling
NodeIdx getRightSibling(NodeIdx n) const
Definition: data.h:72
tue
config
tue::config::ReaderWriter config
Definition: sdf_gtest.cpp:9