The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
concurrency::SubSlotScout Class Referencefinal

#include </builds/gaudi/Gaudi/GaudiHive/src/PRGraph/Visitors/Validators.h>

Inheritance diagram for concurrency::SubSlotScout:
Collaboration diagram for concurrency::SubSlotScout:

Public Member Functions

 SubSlotScout (const EventSlot *slot, const ControlFlowNode &node)
 Constructor.
 
void reset () override
 
bool reply () const override
 
void visitParents (DecisionNode &) override
 
- Public Member Functions inherited from concurrency::ActiveLineageScout
 ActiveLineageScout (const EventSlot *slot, const ControlFlowNode &node)
 Constructor.
 
bool visitEnter (AlgorithmNode &) const override
 
bool visitEnter (DataNode &) const override
 
bool visitEnter (ConditionNode &) const override
 
bool visit (DecisionNode &) override
 
virtual bool visit (AlgorithmNode &)
 
virtual bool visit (DataNode &)
 
virtual bool visit (ConditionNode &)
 
virtual bool visitEnter (DecisionNode &) const
 
- Public Member Functions inherited from concurrency::IGraphVisitor
virtual ~IGraphVisitor ()=default
 

Private Attributes

bool m_foundEntryPoint { true }
 

Additional Inherited Members

- Protected Attributes inherited from concurrency::ActiveLineageScout
const EventSlotm_slot
 
const ControlFlowNodem_startNode
 
bool m_active { true }
 
std::string m_previousNodeName
 

Detailed Description

Definition at line 83 of file Validators.h.

Constructor & Destructor Documentation

◆ SubSlotScout()

concurrency::SubSlotScout::SubSlotScout ( const EventSlot * slot,
const ControlFlowNode & node )
inline

Constructor.

Definition at line 86 of file Validators.h.

87 : ActiveLineageScout( slot, node ), m_foundEntryPoint( slot->parentSlot == nullptr ) {}
ActiveLineageScout(const EventSlot *slot, const ControlFlowNode &node)
Constructor.
Definition Validators.h:54
EventSlot * parentSlot
Pointer to parent slot (null for top level)
Definition EventSlot.h:95

Member Function Documentation

◆ reply()

bool concurrency::SubSlotScout::reply ( ) const
inlineoverridevirtual

Reimplemented from concurrency::ActiveLineageScout.

Definition at line 97 of file Validators.h.

◆ reset()

void concurrency::SubSlotScout::reset ( )
inlineoverridevirtual

Reimplemented from concurrency::ActiveLineageScout.

Definition at line 89 of file Validators.h.

89 {
90 m_active = true;
91
92 // Only look for an entry point if we're in a sub-slot
93 m_foundEntryPoint = ( m_slot->parentSlot == nullptr );
95 }
const ControlFlowNode & m_startNode
Definition Validators.h:77

◆ visitParents()

void concurrency::SubSlotScout::visitParents ( DecisionNode & node)
overridevirtual

Reimplemented from concurrency::ActiveLineageScout.

Definition at line 79 of file Validators.cpp.

79 {
80
81 // Leave a sub-slot if this is the exit node
82 const EventSlot* oldSlot = nullptr;
83 if ( m_slot->parentSlot && m_slot->entryPoint == node.name() ) {
84 oldSlot = m_slot;
85 m_slot = m_slot->parentSlot;
86 m_foundEntryPoint = true;
87 }
88
89 // Examine all parents
90 for ( auto& parent : node.m_parents ) {
91 m_active = true;
92 m_foundEntryPoint = ( m_slot->parentSlot == nullptr );
93 m_previousNodeName = node.name();
94 parent->accept( *this );
95
96 // Any active parent means that this node is active
97 if ( this->reply() ) break;
98 }
99
100 if ( oldSlot ) m_slot = oldSlot;
101 }
bool reply() const override
Definition Validators.h:97

Member Data Documentation

◆ m_foundEntryPoint

bool concurrency::SubSlotScout::m_foundEntryPoint { true }
private

Definition at line 102 of file Validators.h.

102{ true };

The documentation for this class was generated from the following files: