1 #ifndef DATA_FORMATS_MATH_GRAPH_WALKER_H 2 #define DATA_FORMATS_MATH_GRAPH_WALKER_H 11 template <
class N,
class E>
22 using edge_range = std::pair<const_edge_iterator, const_edge_iterator>;
65 template <
class N,
class E>
67 graph_.findRoots(
root_);
70 queue_.push(
root_[0]);
74 template <
class N,
class E>
82 queue_.push(
root_[0]);
85 template <
class N,
class E>
88 return value_type(graph_.nodeData(er.first->first), graph_.edgeData(er.first->second));
91 template <
class N,
class E>
94 return value_type(graph_.nodeData(
e.first), graph_.edgeData(
e.second));
97 template <
class N,
class E>
103 queue_.push(
root_[0]);
107 template <
class N,
class E>
110 const edge_range &adjEdges = graph_.edges(stack_.back().first->first);
111 if (adjEdges.first != adjEdges.second) {
112 stack_.emplace_back(adjEdges);
118 template <
class N,
class E>
122 if (siblings.first != (siblings.second - 1)) {
129 template <
class N,
class E>
132 if (stack_.size() > 1) {
139 template <
class N,
class E>
144 }
else if (stack_.size() > 1 && nextSibling()) {
148 if (stack_.size() > 1 && nextSibling()) {
157 template <
class N,
class E>
160 if (!queue_.empty()) {
164 for (;
it != ed; ++
it) {
168 if (!queue_.empty()) {
const Graph< N, E > & graph_
typename math::Graph< DDLogicalPart, DDPosData * >::edge_iterator edge_iterator
std::vector< double >::size_type index_type
typename math::Graph< DDLogicalPart, DDPosData * >::index_result index_result
std::pair< index_type, bool > index_result
typename math::Graph< DDLogicalPart, DDPosData * >::edge_type edge_type
std::vector< edge_range > stack_type
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
edge_list::iterator edge_iterator
Container::value_type value_type
typename math::Graph< DDLogicalPart, DDPosData * >::value_type value_type
value_type current_bfs() const
std::pair< const_edge_iterator, const_edge_iterator > edge_range
result_type nextSibling()
std::queue< edge_type > bfs_type
std::pair< index_type, index_type > edge_type
std::vector< edge_type > edge_list
typename math::Graph< DDLogicalPart, DDPosData * >::index_type index_type
const stack_type & stack() const
static const char root_[]
edge_list::const_iterator const_edge_iterator
value_type current() const
void reset(double vett[256])
typename math::Graph< DDLogicalPart, DDPosData * >::edge_list edge_list
typename math::Graph< DDLogicalPart, DDPosData * >::const_edge_iterator const_edge_iterator