tue_config
sequence.h
Go to the documentation of this file.
1 #ifndef TUE_CONFIG_SEQUENCE_H_
2 #define TUE_CONFIG_SEQUENCE_H_
3 
4 #include "node.h"
5 
6 #include <vector>
7 
8 namespace tue
9 {
10 
11 namespace config
12 {
13 
14 class Sequence : public Node
15 {
16 
17 public:
18 
19  Sequence(const Label& name) : Node(name, ARRAY) {}
20 
21  bool add(const NodeIdx& n, NodeIdx& previous)
22  {
23  if (children_.empty())
24  previous = -1;
25  else
26  previous = children_.back();
27 
29  return true;
30  }
31 
32  bool firstChild(NodeIdx& child)
33  {
34  if (children_.empty())
35  return false;
36  child = children_.front();
37  return true;
38  }
39 
41 
42  // --- COPY
43 
44  NodePtr deepCopy(const Data& source, NodeIdx target_idx, Data& target) const;
45 
46  virtual bool empty() const
47  {
48  return children_.empty();
49  }
50 
51 };
52 
53 }
54 
55 } // end namespace tue
56 
57 #endif
std::string
tue::config::Sequence::firstChild
bool firstChild(NodeIdx &child)
Definition: sequence.h:32
tue::config::Sequence::empty
virtual bool empty() const
Definition: sequence.h:46
vector
tue::config::NodeIdx
unsigned int NodeIdx
Definition: data_pointer.h:12
std::vector::back
T back(T... args)
tue::config::Sequence::children_
std::vector< NodeIdx > children_
Definition: sequence.h:40
std::vector::front
T front(T... args)
std::vector::push_back
T push_back(T... args)
tue::config::Node
Definition: node.h:19
tue::config::Sequence::Sequence
Sequence(const Label &name)
Definition: sequence.h:19
node.h
tue::config::Sequence::add
bool add(const NodeIdx &n, NodeIdx &previous)
Definition: sequence.h:21
tue::config::Sequence::deepCopy
NodePtr deepCopy(const Data &source, NodeIdx target_idx, Data &target) const
Definition: sequence.cpp:10
tue::config::ARRAY
@ ARRAY
Definition: node_type.h:13
tue::config::Data
Definition: data.h:17
tue::config::NodePtr
boost::shared_ptr< Node > NodePtr
Definition: types.h:21
std::vector::empty
T empty(T... args)
tue::config::Node::name
const Label & name() const
Definition: node.h:54
tue
tue::config::Sequence
Definition: sequence.h:14
config
tue::config::ReaderWriter config
Definition: sdf_gtest.cpp:9