#include <src/PRGraphVisitors.h>
Definition at line 125 of file PRGraphVisitors.h.
concurrency::RunSimulator::RunSimulator |
( |
EventSlot & |
slot, |
|
|
const Cause & |
cause |
|
) |
| |
|
inline |
void concurrency::RunSimulator::reset |
( |
| ) |
|
|
inlineoverridevirtual |
bool concurrency::RunSimulator::visit |
( |
DecisionNode & |
node | ) |
|
|
overridevirtual |
Reimplemented from concurrency::IGraphVisitor.
Definition at line 513 of file PRGraphVisitors.cpp.
515 bool allChildDecisionsResolved =
true;
517 for (
const auto& child : node.getDaughters() ) {
519 child->accept( *
this );
522 if ( childDecision == -1 ) allChildDecisionsResolved =
false;
525 if ( !node.m_modeConcurrent && childDecision == -1 )
return false;
527 if ( childDecision == 1 && node.m_modeOR && node.m_modePromptDecision ) {
531 for (
auto parent : node.m_parents ) { parent->accept( *
this ); }
536 if ( allChildDecisionsResolved ) {
540 for (
auto parent : node.m_parents ) { parent->accept( *
this ); }
543 return allChildDecisionsResolved;
std::vector< int > controlFlowState
State of the control flow.
Reimplemented from concurrency::IGraphVisitor.
Definition at line 554 of file PRGraphVisitors.cpp.
561 if ( AState::INITIAL == states[node.getAlgoIndex()] ) {
562 states.set( node.getAlgoIndex(), AState::CONTROLREADY );
563 if ( dataPromoter.visit( node ) ) {
564 states.set( node.getAlgoIndex(), AState::SCHEDULED );
565 states.set( node.getAlgoIndex(), AState::EVTACCEPTED );
571 }
else if ( AState::CONTROLREADY == states[node.getAlgoIndex()] && dataPromoter.visit( node ) ) {
572 states.set( node.getAlgoIndex(), AState::SCHEDULED );
573 states.set( node.getAlgoIndex(), AState::EVTACCEPTED );
std::vector< int > controlFlowState
State of the control flow.
AlgsExecutionStates algsStates
Vector of algorithms states.
bool concurrency::RunSimulator::visitEnter |
( |
DecisionNode & |
node | ) |
const |
|
overridevirtual |
bool concurrency::RunSimulator::visitEnter |
( |
AlgorithmNode & |
node | ) |
const |
|
overridevirtual |
Cause concurrency::RunSimulator::m_cause |
int concurrency::RunSimulator::m_nodesSucceeded {0} |
The documentation for this class was generated from the following files: