188 bool foundNonResolvedChild =
false;
189 bool foundNegativeChild =
false;
190 bool foundPositiveChild =
false;
203 bool breakout =
false;
204 for (
unsigned int slotIndex : searchResult->second ) {
209 for (
auto child : node.getDaughters() ) {
213 if ( childDecision == -1 )
214 foundNonResolvedChild =
true;
215 else if ( childDecision == 1 )
216 foundPositiveChild =
true;
218 foundNegativeChild =
true;
220 if ( node.m_modePromptDecision ) {
221 if ( node.m_modeOR && foundPositiveChild ) {
225 }
else if ( !node.m_modeOR && foundNegativeChild ) {
231 if ( foundNonResolvedChild ) {
240 if ( breakout )
break;
243 for (
auto child : node.getDaughters() ) {
246 if ( childDecision == -1 )
247 foundNonResolvedChild =
true;
248 else if ( childDecision == 1 )
249 foundPositiveChild =
true;
251 foundNegativeChild =
true;
253 if ( node.m_modePromptDecision ) {
254 if ( node.m_modeOR && foundPositiveChild ) {
257 }
else if ( !node.m_modeOR && foundNegativeChild ) {
262 if ( foundNonResolvedChild )
break;
267 if ( !foundNonResolvedChild && decision == -1 ) {
268 if ( node.m_modeOR ) {
269 if ( foundPositiveChild )
274 if ( foundNegativeChild )
281 if ( node.m_inverted && decision == 1 )
283 else if ( node.m_inverted && decision == 0 )
286 if ( node.m_allPass && !foundNonResolvedChild ) decision = 1;
288 if ( decision != -1 ) {
292 for (
auto parent : node.m_parents ) {
293 parent->accept( *
this );
296 if ( oldSlot )
m_slot = oldSlot;
303 for (
unsigned int slotIndex : searchResult->second ) {
308 for (
auto child : node.getDaughters() ) {
309 bool result = child->accept( *
this );
310 if ( !node.m_modeConcurrent )
318 for (
auto child : node.getDaughters() ) {
319 bool result = child->accept( *
this );
320 if ( !node.m_modeConcurrent )
325 if ( oldSlot )
m_slot = oldSlot;
std::string entryPoint
Name of the node this slot is attached to ("" for top level)
std::vector< int > controlFlowState
State of the control flow.
EventSlot * parentSlot
Pointer to parent slot (null for top level)
std::map< std::string, std::vector< unsigned int > > subSlotsByNode
Listing of sub-slots by the node (name) they are attached to.
std::vector< EventSlot > allSubSlots
Actual sub-slot instances.
Class representing the event slot.