#include <src/PRGraphVisitors.h>
Definition at line 135 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 537 of file PRGraphVisitors.cpp.
540 bool allChildDecisionsResolved =
true;
542 for (
const auto& child : node.getDaughters() ) {
544 child->accept( *
this );
547 if ( childDecision == -1 ) allChildDecisionsResolved =
false;
550 if ( !node.m_modeConcurrent && childDecision == -1 )
return false;
552 if ( childDecision == 1 && node.m_modeOR && node.m_modePromptDecision ) {
556 for (
auto parent : node.m_parents ) {
557 parent->accept( *
this );
563 if ( allChildDecisionsResolved ) {
567 for (
auto parent : node.m_parents ) {
568 parent->accept( *
this );
572 return allChildDecisionsResolved;
std::vector< int > controlFlowState
State of the control flow.
Reimplemented from concurrency::IGraphVisitor.
Definition at line 584 of file PRGraphVisitors.cpp.
592 if ( AState::INITIAL == states[node.getAlgoIndex()] ) {
593 states.set( node.getAlgoIndex(), AState::CONTROLREADY );
594 if ( dataPromoter.visit( node ) ) {
595 states.set( node.getAlgoIndex(), AState::SCHEDULED );
596 states.set( node.getAlgoIndex(), AState::EVTACCEPTED );
602 }
else if ( AState::CONTROLREADY == states[node.getAlgoIndex()] && dataPromoter.visit( node ) ) {
603 states.set( node.getAlgoIndex(), AState::SCHEDULED );
604 states.set( node.getAlgoIndex(), AState::EVTACCEPTED );
AlgsExecutionStates algsStates
Vector of algorithms states.
std::vector< int > controlFlowState
State of the control flow.
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: