File indexing completed on 2025-01-18 09:52:32
0001 #ifndef BOOST_STATECHART_SHALLOW_HISTORY_HPP_INCLUDED
0002 #define BOOST_STATECHART_SHALLOW_HISTORY_HPP_INCLUDED
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <boost/mpl/bool.hpp>
0012 #include <boost/static_assert.hpp>
0013
0014
0015
0016 namespace boost
0017 {
0018 namespace statechart
0019 {
0020
0021
0022
0023
0024 template< class DefaultState >
0025 class shallow_history
0026 {
0027 public:
0028
0029
0030
0031
0032
0033
0034 BOOST_STATIC_ASSERT( DefaultState::context_type::shallow_history::value );
0035
0036
0037
0038
0039
0040 typedef typename DefaultState::outermost_context_base_type
0041 outermost_context_base_type;
0042 typedef typename DefaultState::context_type context_type;
0043 typedef typename DefaultState::context_ptr_type context_ptr_type;
0044 typedef typename DefaultState::context_type_list context_type_list;
0045 typedef typename DefaultState::orthogonal_position orthogonal_position;
0046
0047 static void deep_construct(
0048 const context_ptr_type & pContext,
0049 outermost_context_base_type & outermostContextBase )
0050 {
0051 outermostContextBase.template construct_with_shallow_history<
0052 DefaultState >( pContext );
0053 }
0054 };
0055
0056
0057
0058 }
0059 }
0060
0061
0062
0063 #endif