123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef BOOST_STATECHART_DEEP_HISTORY_HPP_INCLUDED
- #define BOOST_STATECHART_DEEP_HISTORY_HPP_INCLUDED
- //////////////////////////////////////////////////////////////////////////////
- // Copyright 2002-2006 Andreas Huber Doenni
- // Distributed under the Boost Software License, Version 1.0. (See accompany-
- // ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //////////////////////////////////////////////////////////////////////////////
- #include <boost/mpl/bool.hpp>
- #include <boost/static_assert.hpp>
- namespace boost
- {
- namespace statechart
- {
-
-
- //////////////////////////////////////////////////////////////////////////////
- template< class DefaultState >
- class deep_history
- {
- public:
- //////////////////////////////////////////////////////////////////////////
- // If you receive a
- // "use of undefined type 'boost::STATIC_ASSERTION_FAILURE<x>'" or similar
- // compiler error here then you forgot to pass either
- // statechart::has_deep_history or statechart::has_full_history as the
- // last parameter of DefaultState's context.
- BOOST_STATIC_ASSERT( DefaultState::context_type::deep_history::value );
- //////////////////////////////////////////////////////////////////////////
- // The following declarations should be private.
- // They are only public because many compilers lack template friends.
- //////////////////////////////////////////////////////////////////////////
- typedef typename DefaultState::outermost_context_base_type
- outermost_context_base_type;
- typedef typename DefaultState::context_type context_type;
- typedef typename DefaultState::context_ptr_type context_ptr_type;
- typedef typename DefaultState::context_type_list context_type_list;
- typedef typename DefaultState::orthogonal_position orthogonal_position;
- static void deep_construct(
- const context_ptr_type & pContext,
- outermost_context_base_type & outermostContextBase )
- {
- outermostContextBase.template construct_with_deep_history<
- DefaultState >( pContext );
- }
- };
- } // namespace statechart
- } // namespace boost
- #endif
|