SMACC2
Loading...
Searching...
No Matches
smacc2::introspection::WalkStatesExecutor< InitialStateType > Struct Template Reference

#include <smacc_state_machine_info.hpp>

Collaboration diagram for smacc2::introspection::WalkStatesExecutor< InitialStateType >:
Collaboration graph

Static Public Member Functions

static void walkStates (std::shared_ptr< SmaccStateInfo > &currentState, bool rootInitialNode)
 

Detailed Description

template<typename InitialStateType>
struct smacc2::introspection::WalkStatesExecutor< InitialStateType >

Definition at line 125 of file smacc_state_machine_info.hpp.

Member Function Documentation

◆ walkStates()

template<typename InitialStateType >
void smacc2::introspection::WalkStatesExecutor< InitialStateType >::walkStates ( std::shared_ptr< SmaccStateInfo > & currentState,
bool rootInitialNode )
static

Definition at line 402 of file smacc_state_machine_info.hpp.

404{
405 auto currentname = demangledTypeName<InitialStateType>();
406
407 std::shared_ptr<SmaccStateInfo> targetState;
408
409 if (!rootInitialNode)
410 {
411 if (parentState->stateMachine_->containsState<InitialStateType>())
412 {
413 return;
414 }
415
416 targetState = parentState->createChildState<InitialStateType>();
417 }
418 else
419 {
420 targetState = parentState;
421 }
422
424
425 typedef
426 typename std::remove_pointer<decltype(InitialStateType::smacc_inner_type)>::type InnerType;
427 processSubState<InnerType>(targetState);
428
429 // -------------------- REACTIONS --------------------
430 typedef typename InitialStateType::reactions reactions;
431
433}
disable_if< boost::mpl::is_sequence< T > >::type processSubState(std::shared_ptr< SmaccStateInfo > &parentState)
enable_if< boost::mpl::is_sequence< T > >::type processTransitions(std::shared_ptr< SmaccStateInfo > &sourceState)
std::enable_if< HasOnDefinition< T >::value, void >::type CallOnDefinition()
std::string demangledTypeName()

References smacc2::introspection::CallOnDefinition(), smacc2::introspection::demangledTypeName(), smacc2::introspection::processSubState(), and smacc2::introspection::processTransitions().

Referenced by smacc2::introspection::SmaccStateMachineInfo::buildStateMachineInfo(), smacc2::introspection::AddSubState::operator()(), smacc2::introspection::processSubState(), and smacc2::introspection::processTransitionAux().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this struct was generated from the following file: