46 std::ostringstream
m_status{
" No 'Concurrent'/'Prompt' contradictions found" };
142 std::string
reply()
const;
145 [](
const auto& pr ) { return pr.second.size() == 1; } );
183 return m_scc.empty() ||
194 m_status = std::ostringstream{
" No strongly connected components found in DF realm" };
208 std::ostringstream
m_status{
" No strongly connected components found in DF realm" };
constexpr bool all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)
constexpr bool any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)
constexpr _InputIterator find(_InputIterator __first, _InputIterator __last, const _Tp &__val)
void clear(iostate __state=goodbit)
__string_type str() const
const_iterator end() const noexcept
const_iterator begin() const noexcept
virtual bool reply() const
bool visitEnter(ConditionNode &) const override
const ControlFlowNode & m_startNode
bool visit(DecisionNode &) override
bool visitEnter(DataNode &) const override
ActiveLineageScout(const EventSlot *slot, const ControlFlowNode &node)
Constructor.
bool visitEnter(AlgorithmNode &) const override
virtual void visitParents(DecisionNode &)
std::string m_previousNodeName
bool visitEnter(DataNode &) const override
bool visitEnter(ConditionNode &) const override
bool visit(DecisionNode &) override
const std::string & name() const
Get node name.
virtual bool visit(DecisionNode &)
virtual bool visitEnter(DecisionNode &) const
bool visitEnter(AlgorithmNode &) const override
bool visitEnter(ConditionNode &) const override
std::string reply() const
bool visit(DecisionNode &) override
std::ostringstream m_status
bool visitEnter(DataNode &) const override
bool visitEnter(AlgorithmNode &) const override
std::string reply() const
visitor_book m_unconditionalProducers
visitor_book m_conditionalProducers
bool visit(DataNode &) override
bool visitEnter(DecisionNode &) const override
std::map< DataNode *, std::set< AlgorithmNode *, CompareNodes< AlgorithmNode * > >, CompareNodes< DataNode * > > visitor_book
SubSlotScout(const EventSlot *slot, const ControlFlowNode &node)
Constructor.
bool reply() const override
void visitParents(DecisionNode &) override
The visitor implements the Tarjan algorithm for searching strongly connected components in the data f...
bool on_stack(const AlgorithmNode &node) const
unsigned int m_nodes_count
std::map< unsigned int, std::vector< AlgorithmNode * > > m_scc
std::unordered_map< AlgorithmNode *, std::pair< unsigned int, unsigned int > > m_lowlinks
bool visitEnter(AlgorithmNode &node) const override
bool visitEnter(DecisionNode &) const override
bool visit(AlgorithmNode &nodeAt) override
bool visitEnter(ConditionNode &) const override
std::vector< AlgorithmNode * > m_stack
std::ostringstream m_status
Class representing an event slot.
EventSlot * parentSlot
Pointer to parent slot (null for top level).