tue_config
writer.h
Go to the documentation of this file.
1 #ifndef TUE_CONFIG_WRITER_H_
2 #define TUE_CONFIG_WRITER_H_
3 
4 #include "tue/config/data.h"
5 
6 namespace tue
7 {
8 
9 namespace config
10 {
11 
12 class Writer
13 {
14 
15 public:
16 
17  Writer();
18 
19  Writer(DataPointer& cfg);
20 
21  virtual ~Writer();
22 
28  bool writeGroup(const std::string& name);
29 
35  bool writeArray(const std::string& name);
36 
41  bool addArrayItem();
42 
43  template<typename T>
49  void setValue(const std::string& name, const T& value)
50  {
51  Variant var(value);
52  Label label = cfg_->getOrAddLabel(name);
53  cfg_->nodes[idx_]->setValue(label, var);
54  }
55 
62  void setValue(const std::string& name, std::string value)
63  {
64  trim(value);
65 
66  Variant var(value);
67  Label label = cfg_->getOrAddLabel(name);
68  cfg_->nodes[idx_]->setValue(label, var);
69  }
70 
75  bool endArray() { return end(); }
76 
81  bool endGroup() { return end(); }
82 
87  bool endArrayItem() { return end(); }
88 
93  inline DataConstPointer data() const { return DataConstPointer(cfg_, idx_); }
94 
95 private:
96 
101  bool end();
102 
103  NodeIdx idx_; // Current node index
104 
105  boost::shared_ptr<Data> cfg_; // Data pointer
106 
107 };
108 
109 } // end namespace tue
110 
111 } // end namespace config
112 
113 #endif
tue::config::Writer
Definition: writer.h:12
std::string
tue::config::Writer::setValue
void setValue(const std::string &name, std::string value)
setValue<string> set child value with key 'name' and value 'value', value is stripped from leading an...
Definition: writer.h:62
tue::trim
static void trim(std::string &s)
Definition: types.h:41
tue::config::NodeIdx
unsigned int NodeIdx
Definition: data_pointer.h:12
tue::config::DataPointer
Definition: data_pointer.h:17
tue::config::Writer::endArrayItem
bool endArrayItem()
endArrayItem go back to the array level
Definition: writer.h:87
tue::config::Writer::cfg_
boost::shared_ptr< Data > cfg_
Definition: writer.h:105
tue::config::Writer::endGroup
bool endGroup()
endGroup go to the parrent of current group, wrapping end() for readbility
Definition: writer.h:81
tue::config::Writer::idx_
NodeIdx idx_
Definition: writer.h:103
tue::config::Writer::writeGroup
bool writeGroup(const std::string &name)
writeGroup starts writing a group. Or start extending it, if it already exists.
Definition: writer.cpp:40
tue::config::Writer::writeArray
bool writeArray(const std::string &name)
writeArray starts writing an array. Or start extending it, if it already exists.
Definition: writer.cpp:61
tue::config::Writer::~Writer
virtual ~Writer()
Definition: writer.cpp:34
data.h
tue::config::DataConstPointer
Definition: data_pointer.h:35
tue::config::Writer::endArray
bool endArray()
endArray go to parrent of current array, wrapping end() for readibility
Definition: writer.h:75
tue::config::Writer::data
DataConstPointer data() const
data get the data from the current reading/writing point
Definition: writer.h:93
tue::config::Writer::addArrayItem
bool addArrayItem()
addArrayItem create a new item in the array
Definition: writer.cpp:82
tue::config::Writer::Writer
Writer()
Definition: writer.cpp:16
tue
tue::config::Variant
Definition: variant.h:111
tue::config::Writer::end
bool end()
end go to parent node.
Definition: writer.cpp:104
tue::config::Writer::setValue
void setValue(const std::string &name, const T &value)
setValue set child value with key 'name' and value 'value'
Definition: writer.h:49
config
tue::config::ReaderWriter config
Definition: sdf_gtest.cpp:9