14 #include "../../EventSlot.h" 15 #include "../PrecedenceRulesGraph.h" 22 #include <unordered_map> 146 [](
const auto& pr ) {
return pr.second.
size() == 1; } );
184 return m_scc.empty() ||
const ControlFlowNode & m_startNode
unsigned int m_nodes_count
bool visit(DataNode &) override
virtual void visitParents(DecisionNode &)
bool visit(AlgorithmNode &nodeAt) override
Class representing an event slot.
SubSlotScout(const EventSlot *slot, const ControlFlowNode &node)
Constructor.
bool visit(DecisionNode &) override
ActiveLineageScout(const EventSlot *slot, const ControlFlowNode &node)
Constructor.
bool visitEnter(DecisionNode &) const override
virtual bool visit(DecisionNode &)
virtual bool visitEnter(DecisionNode &) const
bool visitEnter(DecisionNode &) const override
bool visit(DecisionNode &) override
bool visitEnter(ConditionNode &) const override
bool visitEnter(AlgorithmNode &) const override
visitor_book m_conditionalProducers
std::map< DataNode *, std::set< AlgorithmNode *, CompareNodes< AlgorithmNode * > >, CompareNodes< DataNode * > > visitor_book
visitor_book m_unconditionalProducers
bool visitEnter(ConditionNode &) const override
std::ostringstream m_status
std::ostringstream m_status
std::string m_previousNodeName
bool reply() const override
bool visit(DecisionNode &) override
std::map< unsigned int, std::vector< AlgorithmNode * > > m_scc
The visitor implements the Tarjan algorithm for searching strongly connected components in the data f...
void visitParents(DecisionNode &) override
bool visitEnter(DataNode &) const override
std::string reply() const
bool on_stack(const AlgorithmNode &node) const
std::unordered_map< AlgorithmNode *, std::pair< unsigned int, unsigned int > > m_lowlinks
bool visitEnter(ConditionNode &) const override
std::vector< AlgorithmNode * > m_stack
bool visitEnter(ConditionNode &) const override
bool visitEnter(DataNode &) const override
EventSlot * parentSlot
Pointer to parent slot (null for top level)
bool visitEnter(DataNode &) const override
bool visitEnter(AlgorithmNode &node) const override
bool visitEnter(AlgorithmNode &) const override
std::string reply() const
bool visitEnter(AlgorithmNode &) const override
const std::string & name() const
Get node name.
virtual bool reply() const