#include <src/PRGraphVisitors.h>
Definition at line 54 of file PRGraphVisitors.h.
concurrency::Supervisor::Supervisor |
( |
EventSlot & |
slot, |
|
|
const Cause & |
cause, |
|
|
bool |
ifTrace = false |
|
) |
| |
|
inline |
Reimplemented from concurrency::IGraphVisitor.
Definition at line 140 of file PRGraphVisitors.cpp.
143 bool foundNonResolvedChild =
false;
144 bool foundNegativeChild =
false;
145 bool foundPositiveChild =
false;
148 for (
auto child : node.getDaughters() ) {
151 if ( childDecision == -1 )
152 foundNonResolvedChild =
true;
153 else if ( childDecision == 1 )
154 foundPositiveChild =
true;
156 foundNegativeChild =
true;
158 if ( node.m_modePromptDecision ) {
159 if ( node.m_modeOR && foundPositiveChild ) {
162 }
else if ( !node.m_modeOR && foundNegativeChild ) {
167 if ( foundNonResolvedChild )
break;
171 if ( !foundNonResolvedChild && decision == -1 ) {
172 if ( node.m_modeOR ) {
173 if ( foundPositiveChild )
178 if ( foundNegativeChild )
185 if ( node.m_allPass && !foundNonResolvedChild ) decision = 1;
187 if ( decision != -1 ) {
std::vector< int > controlFlowState
State of the control flow.
Reimplemented from concurrency::IGraphVisitor.
Definition at line 203 of file PRGraphVisitors.cpp.
209 auto&
state = states[node.getAlgoIndex()];
212 if ( State::INITIAL ==
state ) states.updateState( node.getAlgoIndex(), State::CONTROLREADY ).ignore();
215 if ( State::CONTROLREADY ==
state ) {
217 result = promoter.visit( node );
AlgsExecutionStates algsStates
Vector of algorithms states.
bool concurrency::Supervisor::visitEnter |
( |
DecisionNode & |
node | ) |
const |
|
overridevirtual |
bool concurrency::Supervisor::visitEnter |
( |
AlgorithmNode & |
node | ) |
const |
|
overridevirtual |
Cause concurrency::Supervisor::m_cause |
bool concurrency::Supervisor::m_trace |
The documentation for this class was generated from the following files: