|
|
Go to the documentation of this file. 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>;
67 template <
class N,
class E>
69 graph_.findRoots(
root_);
72 queue_.push(
root_[0]);
76 template <
class N,
class E>
84 queue_.push(
root_[0]);
87 template <
class N,
class E>
90 return value_type(graph_.nodeData(er.first->first), graph_.edgeData(er.first->second));
93 template <
class N,
class E>
96 return value_type(graph_.nodeData(
e.first), graph_.edgeData(
e.second));
99 template <
class N,
class E>
105 queue_.push(
root_[0]);
109 template <
class N,
class E>
112 const edge_range &adjEdges = graph_.edges(stack_.back().first->first);
113 if (adjEdges.first != adjEdges.second) {
114 stack_.emplace_back(adjEdges);
120 template <
class N,
class E>
124 if (siblings.first != (siblings.second - 1)) {
131 template <
class N,
class E>
134 if (stack_.size() > 1) {
141 template <
class N,
class E>
146 }
else if (stack_.size() > 1 && nextSibling()) {
150 if (stack_.size() > 1 && nextSibling()) {
159 template <
class N,
class E>
162 if (!queue_.empty()) {
166 for (; it != ed; ++it) {
170 if (!queue_.empty()) {
std::pair< index_type, bool > index_result
std::pair< index_type, index_type > edge_type
std::queue< edge_type > bfs_type
edge_list::const_iterator const_edge_iterator
const Graph< N, E > & graph_
const stack_type & stack() const
typename math::Graph< DDLogicalPart, DDPosData * >::const_edge_iterator const_edge_iterator
std::vector< edge_type > edge_list
typename math::Graph< DDLogicalPart, DDPosData * >::index_type index_type
typename math::Graph< DDLogicalPart, DDPosData * >::value_type value_type
std::pair< const_edge_iterator, const_edge_iterator > edge_range
typename math::Graph< DDLogicalPart, DDPosData * >::edge_list edge_list
value_type current() const
static const char root_[]
Container::value_type value_type
std::vector< edge_range > stack_type
typename math::Graph< DDLogicalPart, DDPosData * >::edge_type edge_type
std::vector< double >::size_type index_type
result_type nextSibling()
typename math::Graph< DDLogicalPart, DDPosData * >::edge_iterator edge_iterator
void reset(double vett[256])
value_type current_bfs() const
typename math::Graph< DDLogicalPart, DDPosData * >::index_result index_result
edge_list::iterator edge_iterator
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