My Project
Classes | Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator > Class Template Reference

#include <state_machine.hpp>

Inheritance diagram for boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >:
Inheritance graph
Collaboration diagram for boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >:
Collaboration graph

Classes

class  state_iterator
 

Public Types

typedef Allocator allocator_type
 
typedef detail::rtti_policy rtti_policy_type
 
typedef event_base event_base_type
 
typedef intrusive_ptr< const event_base_typeevent_base_ptr_type
 
typedef detail::state_base< allocator_type, rtti_policy_typestate_base_type
 
typedef MostDerived inner_context_type
 
typedef mpl::integral_c< detail::orthogonal_position_type, 0 > inner_orthogonal_position
 
typedef mpl::integral_c< detail::orthogonal_position_type, 1 > no_of_orthogonal_regions
 
typedef MostDerived outermost_context_type
 
typedef state_machine outermost_context_base_type
 
typedef state_machineinner_context_ptr_type
 
typedef state_base_type::node_state_base_ptr_type node_state_base_ptr_type
 
typedef state_base_type::leaf_state_ptr_type leaf_state_ptr_type
 
typedef state_base_type::state_list_type state_list_type
 
typedef mpl::clear< mpl::list<> >::type context_type_list
 
typedef mpl::bool_< false > shallow_history
 
typedef mpl::bool_< false > deep_history
 
typedef mpl::bool_< false > inherited_deep_history
 

Public Member Functions

void initiate ()
 
void terminate ()
 
bool terminated () const
 
void process_event (const event_base_type &evt)
 
template<class Target >
Target state_cast () const
 
template<class Target >
Target state_downcast () const
 
state_iterator state_begin () const
 
state_iterator state_end () const
 
void unconsumed_event (const event_base &)
 
template<class HistoryContext , detail::orthogonal_position_type orthogonalPosition>
void clear_shallow_history ()
 
template<class HistoryContext , detail::orthogonal_position_type orthogonalPosition>
void clear_deep_history ()
 
const event_base_typetriggering_event () const
 
void post_event_impl (const event_base_ptr_type &pEvent)
 
void post_event_impl (const event_base &evt)
 
detail::reaction_result react_impl (const event_base_type &, typename rtti_policy_type::id_type)
 
void exit_impl (inner_context_ptr_type &, typename state_base_type::node_state_base_ptr_type &, bool)
 
void set_outermost_unstable_state (typename state_base_type::node_state_base_ptr_type &pOutermostUnstableState)
 
template<class Context >
Context & context ()
 
template<class Context >
const Context & context () const
 
outermost_context_typeoutermost_context ()
 
const outermost_context_typeoutermost_context () const
 
outermost_context_base_typeoutermost_context_base ()
 
const outermost_context_base_typeoutermost_context_base () const
 
void terminate_as_reaction (state_base_type &theState)
 
void terminate_as_part_of_transit (state_base_type &theState)
 
void terminate_as_part_of_transit (state_machine &)
 
template<class State >
void add (const intrusive_ptr< State > &pState)
 
void add_inner_state (detail::orthogonal_position_type position, state_base_type *pOutermostState)
 
void remove_inner_state (detail::orthogonal_position_type position)
 
void release_events ()
 
template<class HistorizedState >
void store_shallow_history ()
 
template<class DefaultState >
void construct_with_shallow_history (const typename DefaultState::context_ptr_type &pContext)
 
template<class HistorizedState , class LeafState >
void store_deep_history ()
 
template<class DefaultState >
void construct_with_deep_history (const typename DefaultState::context_ptr_type &pContext)
 

Protected Member Functions

 state_machine ()
 
virtual ~state_machine ()
 
void post_event (const event_base_ptr_type &pEvent)
 
void post_event (const event_base &evt)
 

Friends

class initial_construct_function
 
class terminate_function
 
class exception_event_handler
 
class terminator
 

Member Typedef Documentation

◆ allocator_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef Allocator boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::allocator_type

◆ context_type_list

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::clear< mpl::list<> >::type boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::context_type_list

◆ deep_history

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::bool_< false > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::deep_history

◆ event_base_ptr_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef intrusive_ptr< const event_base_type > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::event_base_ptr_type

◆ event_base_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef event_base boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::event_base_type

◆ inherited_deep_history

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::bool_< false > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::inherited_deep_history

◆ inner_context_ptr_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef state_machine* boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::inner_context_ptr_type

◆ inner_context_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef MostDerived boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::inner_context_type

◆ inner_orthogonal_position

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::integral_c< detail::orthogonal_position_type, 0 > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::inner_orthogonal_position

◆ leaf_state_ptr_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef state_base_type::leaf_state_ptr_type boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::leaf_state_ptr_type

◆ no_of_orthogonal_regions

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::integral_c< detail::orthogonal_position_type, 1 > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::no_of_orthogonal_regions

◆ node_state_base_ptr_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef state_base_type::node_state_base_ptr_type boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::node_state_base_ptr_type

◆ outermost_context_base_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef state_machine boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context_base_type

◆ outermost_context_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef MostDerived boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context_type

◆ rtti_policy_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef detail::rtti_policy boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::rtti_policy_type

◆ shallow_history

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef mpl::bool_< false > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::shallow_history

◆ state_base_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef detail::state_base< allocator_type, rtti_policy_type > boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_base_type

◆ state_list_type

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
typedef state_base_type::state_list_type boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_list_type

Constructor & Destructor Documentation

◆ state_machine()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_machine ( )
inlineprotected

◆ ~state_machine()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
virtual boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::~state_machine ( )
inlineprotectedvirtual

Member Function Documentation

◆ add()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class State >
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::add ( const intrusive_ptr< State > &  pState)
inline

◆ add_inner_state()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::add_inner_state ( detail::orthogonal_position_type  position,
state_base_type pOutermostState 
)
inline

◆ clear_deep_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class HistoryContext , detail::orthogonal_position_type orthogonalPosition>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::clear_deep_history ( )
inline

◆ clear_shallow_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class HistoryContext , detail::orthogonal_position_type orthogonalPosition>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::clear_shallow_history ( )
inline

◆ construct_with_deep_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class DefaultState >
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::construct_with_deep_history ( const typename DefaultState::context_ptr_type &  pContext)
inline

◆ construct_with_shallow_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class DefaultState >
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::construct_with_shallow_history ( const typename DefaultState::context_ptr_type &  pContext)
inline

◆ context() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class Context >
Context& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::context ( )
inline

◆ context() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class Context >
const Context& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::context ( ) const
inline

◆ exit_impl()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::exit_impl ( inner_context_ptr_type ,
typename state_base_type::node_state_base_ptr_type &  ,
bool   
)
inline

◆ initiate()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::initiate ( )
inline

◆ outermost_context() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
outermost_context_type& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context ( )
inline

◆ outermost_context() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
const outermost_context_type& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context ( ) const
inline

◆ outermost_context_base() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
outermost_context_base_type& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context_base ( )
inline

◆ outermost_context_base() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
const outermost_context_base_type& boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::outermost_context_base ( ) const
inline

◆ post_event() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::post_event ( const event_base evt)
inlineprotected

◆ post_event() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::post_event ( const event_base_ptr_type pEvent)
inlineprotected

◆ post_event_impl() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::post_event_impl ( const event_base evt)
inline

◆ post_event_impl() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::post_event_impl ( const event_base_ptr_type pEvent)
inline
Here is the caller graph for this function:

◆ process_event()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::process_event ( const event_base_type evt)
inline

◆ react_impl()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
detail::reaction_result boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::react_impl ( const event_base_type ,
typename rtti_policy_type::id_type   
)
inline

◆ release_events()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::release_events ( )
inline

◆ remove_inner_state()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::remove_inner_state ( detail::orthogonal_position_type  position)
inline

◆ set_outermost_unstable_state()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::set_outermost_unstable_state ( typename state_base_type::node_state_base_ptr_type &  pOutermostUnstableState)
inline

◆ state_begin()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
state_iterator boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_begin ( ) const
inline

◆ state_cast()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class Target >
Target boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_cast ( ) const
inline

◆ state_downcast()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class Target >
Target boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_downcast ( ) const
inline

◆ state_end()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
state_iterator boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::state_end ( ) const
inline

◆ store_deep_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class HistorizedState , class LeafState >
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::store_deep_history ( )
inline

◆ store_shallow_history()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
template<class HistorizedState >
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::store_shallow_history ( )
inline

◆ terminate()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::terminate ( )
inline
Here is the caller graph for this function:

◆ terminate_as_part_of_transit() [1/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::terminate_as_part_of_transit ( state_base_type theState)
inline

◆ terminate_as_part_of_transit() [2/2]

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::terminate_as_part_of_transit ( state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator > &  )
inline

◆ terminate_as_reaction()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::terminate_as_reaction ( state_base_type theState)
inline

◆ terminated()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
bool boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::terminated ( ) const
inline

◆ triggering_event()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
const event_base_type* boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::triggering_event ( ) const
inline

◆ unconsumed_event()

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
void boost::statechart::state_machine< MostDerived, InitialState, Allocator, ExceptionTranslator >::unconsumed_event ( const event_base )
inline

Friends And Related Function Documentation

◆ exception_event_handler

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
friend class exception_event_handler
friend

◆ initial_construct_function

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
friend class initial_construct_function
friend

◆ terminate_function

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
friend class terminate_function
friend

◆ terminator

template<class MostDerived , class InitialState , class Allocator = std::allocator< none >, class ExceptionTranslator = null_exception_translator>
friend class terminator
friend

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