|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r60617 - in sandbox/msm/boost/msm: back front front/detail front/euml
From: christophe.j.henry_at_[hidden]
Date: 2010-03-15 13:13:22
Author: chenry
Date: 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
New Revision: 60617
URL: http://svn.boost.org/trac/boost/changeset/60617
Log:
cleanup
Added:
sandbox/msm/boost/msm/front/completion_event.hpp (contents, props changed)
sandbox/msm/boost/msm/front/detail/common_states.hpp (contents, props changed)
Text files modified:
sandbox/msm/boost/msm/back/dispatch_table.hpp | 2
sandbox/msm/boost/msm/back/favor_compile_time.hpp | 2
sandbox/msm/boost/msm/back/metafunctions.hpp | 12 ++++----
sandbox/msm/boost/msm/back/state_machine.hpp | 22 ++++++++--------
sandbox/msm/boost/msm/front/common_states.hpp | 52 ---------------------------------------
sandbox/msm/boost/msm/front/euml/euml_typeof.hpp | 4 +-
sandbox/msm/boost/msm/front/euml/state_grammar.hpp | 20 +++++++-------
sandbox/msm/boost/msm/front/functor_row.hpp | 4 +-
sandbox/msm/boost/msm/front/state_machine_def.hpp | 4 +-
sandbox/msm/boost/msm/front/states.hpp | 10 +++---
10 files changed, 41 insertions(+), 91 deletions(-)
Modified: sandbox/msm/boost/msm/back/dispatch_table.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/dispatch_table.hpp (original)
+++ sandbox/msm/boost/msm/back/dispatch_table.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -183,7 +183,7 @@
template <class EventType>
struct default_init_cell<EventType,
typename ::boost::enable_if<
- typename is_automatic_event<EventType>::type>::type>
+ typename is_completion_event<EventType>::type>::type>
{
default_init_cell(dispatch_table* self_,cell* tofill_entries_)
: self(self_),tofill_entries(tofill_entries_)
Modified: sandbox/msm/boost/msm/back/favor_compile_time.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/favor_compile_time.hpp (original)
+++ sandbox/msm/boost/msm/back/favor_compile_time.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -219,7 +219,7 @@
template <class EventType>
struct default_init_cell<EventType,
typename ::boost::enable_if<
- typename is_automatic_event<EventType>::type>::type>
+ typename is_completion_event<EventType>::type>::type>
{
default_init_cell(dispatch_table* self_,chain_row* tofill_entries_)
: self(self_),tofill_entries(tofill_entries_)
Modified: sandbox/msm/boost/msm/back/metafunctions.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/metafunctions.hpp (original)
+++ sandbox/msm/boost/msm/back/metafunctions.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -51,7 +51,7 @@
BOOST_MPL_HAS_XXX_TRAIT_DEF(not_real_row_tag)
BOOST_MPL_HAS_XXX_TRAIT_DEF(event_blocking_flag)
BOOST_MPL_HAS_XXX_TRAIT_DEF(explicit_entry_state)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(automatic_event)
+BOOST_MPL_HAS_XXX_TRAIT_DEF(completion_event)
BOOST_MPL_HAS_XXX_TRAIT_DEF(no_exception_thrown)
BOOST_MPL_HAS_XXX_TRAIT_DEF(no_message_queue)
BOOST_MPL_HAS_XXX_TRAIT_DEF(activate_deferred_events)
@@ -436,10 +436,10 @@
// returns a mpl::bool_<true> if State has any delayed event
template <class Event>
-struct is_automatic_event
+struct is_completion_event
{
typedef typename ::boost::mpl::if_<
- has_automatic_event<Event>,
+ has_completion_event<Event>,
::boost::mpl::bool_<true>,
::boost::mpl::bool_<false> >::type type;
};
@@ -451,10 +451,10 @@
typedef typename generate_event_set<Stt>::type event_list;
typedef ::boost::mpl::bool_< ::boost::mpl::count_if<
- event_list,is_automatic_event< ::boost::mpl::placeholders::_1 > >::value != 0> type;
+ event_list,is_completion_event< ::boost::mpl::placeholders::_1 > >::value != 0> type;
};
template <class Derived>
-struct find_automatic_events
+struct find_completion_events
{
typedef typename create_stt<Derived>::type Stt;
typedef typename generate_event_set<Stt>::type event_list;
@@ -462,7 +462,7 @@
typedef typename ::boost::mpl::fold<
event_list, ::boost::mpl::set<>,
::boost::mpl::if_<
- is_automatic_event< ::boost::mpl::placeholders::_2>,
+ is_completion_event< ::boost::mpl::placeholders::_2>,
::boost::mpl::insert< ::boost::mpl::placeholders::_1, ::boost::mpl::placeholders::_2 >,
::boost::mpl::placeholders::_1 >
>::type type;
Modified: sandbox/msm/boost/msm/back/state_machine.hpp
==============================================================================
--- sandbox/msm/boost/msm/back/state_machine.hpp (original)
+++ sandbox/msm/boost/msm/back/state_machine.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -934,7 +934,7 @@
(call_init<InitEvent>(InitEvent(),this));
// give a chance to handle an anonymous (eventless) transition
handle_eventless_transitions_helper<library_sm> eventless_helper(this,true);
- eventless_helper.process_automatic_event();
+ eventless_helper.process_completion_event();
}
@@ -978,7 +978,7 @@
// event can be handled, processing
// handle with lowest priority event-less transitions
handle_eventless_transitions_helper<library_sm> eventless_helper(this,(handled!=HANDLED_FALSE));
- eventless_helper.process_automatic_event();
+ eventless_helper.process_completion_event();
return ret_handled;
}
@@ -1315,7 +1315,7 @@
struct handle_eventless_transitions_helper
{
handle_eventless_transitions_helper(library_sm* , bool ){}
- void process_automatic_event(){}
+ void process_completion_event(){}
};
// otherwise
template <class StateType>
@@ -1323,16 +1323,16 @@
<StateType, typename enable_if< typename ::boost::msm::back::has_fsm_eventless_transition<StateType>::type >::type>
{
handle_eventless_transitions_helper(library_sm* self_, bool handled_):self(self_),handled(handled_){}
- void process_automatic_event()
+ void process_completion_event()
{
typedef typename ::boost::mpl::deref<
typename ::boost::mpl::begin<
- typename find_automatic_events<StateType>::type
+ typename find_completion_events<StateType>::type
>::type
- >::type first_automatic_event;
+ >::type first_completion_event;
if (handled)
{
- self->process_event(first_automatic_event() );
+ self->process_event(first_completion_event() );
}
}
@@ -1417,8 +1417,8 @@
// generate an error on every active state
// for state machine states contained in other state machines, do not handle
// but let the containing sm handle the error
- // automatic events do not produce an error
- if (!handled && !is_contained() && !is_automatic_event<Event>::type::value)
+ // completion events do not produce an error
+ if (!handled && !is_contained() && !is_completion_event<Event>::type::value)
{
for (int i=0; i<nr_regions::value;++i)
{
@@ -2002,8 +2002,8 @@
return HANDLED_DEFERRED;
}
- // called for automatic events. Default address set in the dispatch_table at init
- // prevents no-transition detection for automatic events
+ // called for completion events. Default address set in the dispatch_table at init
+ // prevents no-transition detection for completion events
template <class Event>
static HandledEnum default_eventless_transition(library_sm& fsm, int, int , Event const& e)
{
Modified: sandbox/msm/boost/msm/front/common_states.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/common_states.hpp (original)
+++ sandbox/msm/boost/msm/front/common_states.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -12,12 +12,11 @@
#define BOOST_MSM_FRONT_COMMON_STATES_H
#include <boost/mpl/int.hpp>
-
#include <boost/mpl/vector.hpp>
#include <boost/fusion/container/map.hpp>
#include <boost/fusion/include/at_c.hpp>
-
#include <boost/type_traits/add_const.hpp>
+#include <boost/msm/front/detail/common_states.hpp>
namespace boost { namespace msm { namespace front
{
@@ -32,55 +31,6 @@
virtual ~polymorphic_state() {}
};
-template <class Attributes= ::boost::fusion::map<> >
-struct inherit_attributes
-{
- // on the fly attribute creation capability
- typedef Attributes attributes_type;
- template <class Index>
- typename ::boost::fusion::result_of::at_key<attributes_type,
- Index>::type
- get_attribute(Index const&)
- {
- return ::boost::fusion::at_key<Index>(m_attributes);
- }
-
- template <class Index>
- typename ::boost::add_const<
- typename ::boost::fusion::result_of::at_key<attributes_type,
- Index>::type>::type
- get_attribute(Index const&)const
- {
- return const_cast<
- typename ::boost::add_const<
- typename ::boost::fusion::result_of::at_key< attributes_type,
- Index >::type>::type>
- (::boost::fusion::at_key<Index>(m_attributes));
- }
-
-private:
- // attributes
- Attributes m_attributes;
-};
-
-// the interface for all states. Defines entry and exit functions. Overwrite to implement for any state needing it.
-template<class USERBASE,class Attributes= ::boost::fusion::vector<> >
-struct state_base : public inherit_attributes<Attributes>, USERBASE
-{
- typedef USERBASE user_state_base;
- typedef Attributes attributes_type;
-
- // empty implementation for the states not wishing to define an entry condition
- // will not be called polymorphic way
- template <class Event,class FSM>
- void on_entry(Event const& ,FSM&){}
- template <class Event,class FSM>
- void on_exit(Event const&,FSM& ){}
- // default (empty) transition table;
- typedef ::boost::mpl::vector0<> internal_transition_table;
- typedef ::boost::mpl::vector0<> transition_table;
-};
-
}}}
#endif //BOOST_MSM_FRONT_COMMON_STATES_H
Added: sandbox/msm/boost/msm/front/completion_event.hpp
==============================================================================
--- (empty file)
+++ sandbox/msm/boost/msm/front/completion_event.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -0,0 +1,25 @@
+// Copyright 2008 Christophe Henry
+// henry UNDERSCORE christophe AT hotmail DOT com
+// This is an extended version of the state machine available in the boost::mpl library
+// Distributed under the same license as the original.
+// Copyright for the original version:
+// Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed
+// under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+#define BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+
+namespace boost { namespace msm { namespace front
+{
+
+ struct none
+ {
+ typedef int completion_event;
+ };
+
+}}}
+
+#endif //BOOST_MSM_FRONT_COMMON_COMPLETION_EVENT_H
+
Added: sandbox/msm/boost/msm/front/detail/common_states.hpp
==============================================================================
--- (empty file)
+++ sandbox/msm/boost/msm/front/detail/common_states.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -0,0 +1,76 @@
+// Copyright 2008 Christophe Henry
+// henry UNDERSCORE christophe AT hotmail DOT com
+// This is an extended version of the state machine available in the boost::mpl library
+// Distributed under the same license as the original.
+// Copyright for the original version:
+// Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed
+// under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+#define BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+
+#include <boost/mpl/int.hpp>
+
+#include <boost/mpl/vector.hpp>
+#include <boost/fusion/container/map.hpp>
+#include <boost/fusion/include/at_c.hpp>
+
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost { namespace msm { namespace front {namespace detail
+{
+template <class Attributes= ::boost::fusion::map<> >
+struct inherit_attributes
+{
+ // on the fly attribute creation capability
+ typedef Attributes attributes_type;
+ template <class Index>
+ typename ::boost::fusion::result_of::at_key<attributes_type,
+ Index>::type
+ get_attribute(Index const&)
+ {
+ return ::boost::fusion::at_key<Index>(m_attributes);
+ }
+
+ template <class Index>
+ typename ::boost::add_const<
+ typename ::boost::fusion::result_of::at_key<attributes_type,
+ Index>::type>::type
+ get_attribute(Index const&)const
+ {
+ return const_cast<
+ typename ::boost::add_const<
+ typename ::boost::fusion::result_of::at_key< attributes_type,
+ Index >::type>::type>
+ (::boost::fusion::at_key<Index>(m_attributes));
+ }
+
+private:
+ // attributes
+ Attributes m_attributes;
+};
+
+// the interface for all states. Defines entry and exit functions. Overwrite to implement for any state needing it.
+template<class USERBASE,class Attributes= ::boost::fusion::vector<> >
+struct state_base : public inherit_attributes<Attributes>, USERBASE
+{
+ typedef USERBASE user_state_base;
+ typedef Attributes attributes_type;
+
+ // empty implementation for the states not wishing to define an entry condition
+ // will not be called polymorphic way
+ template <class Event,class FSM>
+ void on_entry(Event const& ,FSM&){}
+ template <class Event,class FSM>
+ void on_exit(Event const&,FSM& ){}
+ // default (empty) transition table;
+ typedef ::boost::mpl::vector0<> internal_transition_table;
+ typedef ::boost::mpl::vector0<> transition_table;
+};
+
+}}}}
+
+#endif //BOOST_MSM_FRONT_DETAILS_COMMON_STATES_H
+
Modified: sandbox/msm/boost/msm/front/euml/euml_typeof.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/euml/euml_typeof.hpp (original)
+++ sandbox/msm/boost/msm/front/euml/euml_typeof.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -26,7 +26,7 @@
BOOST_TYPEOF_REGISTER_TEMPLATE(::boost::mpl::size_t, (unsigned int))
BOOST_TYPEOF_REGISTER_TYPE(::boost::msm::front::default_base_state)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::inherit_attributes, 1)
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::detail::inherit_attributes, 1)
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::func_state, 6)
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::entry_func_state, (int)(typename)(typename)(typename)(typename)(typename)(typename))
@@ -45,7 +45,7 @@
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::State_Machine_, (int))
BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::none)
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::Row, 5)
-BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::ActionSequence, 1)
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::ActionSequence_, 1)
BOOST_TYPEOF_REGISTER_TYPE(boost::msm::front::euml::NoAction)
BOOST_TYPEOF_REGISTER_TEMPLATE(boost::msm::front::euml::And_, 2)
Modified: sandbox/msm/boost/msm/front/euml/state_grammar.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/euml/state_grammar.hpp (original)
+++ sandbox/msm/boost/msm/front/euml/state_grammar.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -42,7 +42,7 @@
class Flags = ::boost::mpl::vector0<>,
class Defer = ::boost::mpl::vector0<>,
class BASE = ::boost::msm::front::default_base_state>
-struct func_state : public ::boost::msm::front::state_base<BASE,Attributes>,
+struct func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
euml_state<func_state<EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
{
// grammar testing
@@ -74,7 +74,7 @@
class Flags = ::boost::mpl::vector0<>,
class Defer = ::boost::mpl::vector0<>,
class BASE = default_base_state>
-struct entry_func_state : public ::boost::msm::front::state_base<BASE,Attributes>,
+struct entry_func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
euml_state<entry_func_state<ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
{
// grammar testing
@@ -110,7 +110,7 @@
class Flags = ::boost::mpl::vector0<>,
class Defer = ::boost::mpl::vector0<>,
class BASE = default_base_state>
-struct explicit_entry_func_state : public ::boost::msm::front::state_base<BASE,Attributes>,
+struct explicit_entry_func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
public ::boost::msm::front::explicit_entry<ZoneIndex>,
euml_state<explicit_entry_func_state<
ZoneIndex,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
@@ -144,7 +144,7 @@
class Flags = ::boost::mpl::vector0<>,
class Defer = ::boost::mpl::vector0<>,
class BASE = default_base_state>
-struct exit_func_state : public ::boost::msm::front::state_base<BASE,Attributes>,
+struct exit_func_state : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
euml_state<exit_func_state<Event,EntryFunctor,ExitFunctor,Attributes,Flags,Defer,BASE> >
{
// grammar testing
@@ -180,17 +180,17 @@
: proto::or_<
proto::when <
BuildActions,
- ActionSequence<make_vector_one_row<BuildActions(proto::_)>()>()
+ ActionSequence_<make_vector_one_row<BuildActions(proto::_)>()>()
>,
proto::when <
proto::comma<BuildActions,BuildActions >,
- ActionSequence<boost::mpl::push_back<
+ ActionSequence_<boost::mpl::push_back<
make_vector_one_row<BuildActions(proto::_left)>(),
BuildActions(proto::_right)>()>()
>,
proto::when <
proto::comma<BuildActionSequence,BuildActions >,
- ActionSequence<boost::mpl::push_back<
+ ActionSequence_<boost::mpl::push_back<
get_sequence<BuildActionSequence(proto::_left) >(),
BuildActions(proto::_right) >() >()
>
@@ -777,7 +777,7 @@
class NoTransitionFunctor = NoAction,
class OnExceptionFunctor = NoAction,
class BASE = ::boost::msm::front::default_base_state>
-struct func_state_machine : public ::boost::msm::front::state_base<BASE,Attributes>,
+struct func_state_machine : public ::boost::msm::front::detail::state_base<BASE,Attributes>,
euml_state<func_state_machine<STT,Init,EntryFunctor,ExitFunctor,Attributes,Flags,
Defer,NoTransitionFunctor,OnExceptionFunctor,BASE> >
{
@@ -1054,10 +1054,10 @@
template <class Expr>
inline
-inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type>
+::boost::msm::front::detail::inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type>
build_attributes (Expr const&)
{
- return inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type> ();
+ return ::boost::msm::front::detail::inherit_attributes<typename boost::result_of<BuildAttributes(Expr)>::type> ();
}
template <class Expr1,class Expr2,class Attr,class Configure,class BASE>
Modified: sandbox/msm/boost/msm/front/functor_row.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/functor_row.hpp (original)
+++ sandbox/msm/boost/msm/front/functor_row.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -18,7 +18,7 @@
#include <boost/msm/row_tags.hpp>
#include <boost/msm/common.hpp>
-#include <boost/msm/front/automatic_event.hpp>
+#include <boost/msm/front/completion_event.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
@@ -238,7 +238,7 @@
struct not_euml_tag{};
template <class Sequence>
- struct ActionSequence
+ struct ActionSequence_
{
typedef Sequence sequence;
template <class Event,class FSM,class STATE >
Modified: sandbox/msm/boost/msm/front/state_machine_def.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/state_machine_def.hpp (original)
+++ sandbox/msm/boost/msm/front/state_machine_def.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -15,14 +15,14 @@
#include <boost/msm/row_tags.hpp>
#include <boost/msm/front/states.hpp>
-#include <boost/msm/front/automatic_event.hpp>
+#include <boost/msm/front/completion_event.hpp>
#include <boost/msm/front/common_states.hpp>
namespace boost { namespace msm { namespace front
{
template<class Derived,class BaseState = default_base_state>
-struct state_machine_def : public state_base<BaseState>
+struct state_machine_def : public boost::msm::front::detail::state_base<BaseState>
{
// tags
// default: no flag
Modified: sandbox/msm/boost/msm/front/states.hpp
==============================================================================
--- sandbox/msm/boost/msm/front/states.hpp (original)
+++ sandbox/msm/boost/msm/front/states.hpp 2010-03-15 13:13:20 EDT (Mon, 15 Mar 2010)
@@ -44,7 +44,7 @@
// provides the typedefs and interface. Concrete states derive from it.
// template argument: pointer-to-fsm policy
template<class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct state : public state_base<BASE>, SMPtrPolicy
+struct state : public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
{
// tags
// default: no flag
@@ -56,7 +56,7 @@
// terminate state simply defines the TerminateFlag flag
// template argument: pointer-to-fsm policy
template<class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct terminate_state : public state_base<BASE>, SMPtrPolicy
+struct terminate_state : public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
{
// tags
typedef ::boost::mpl::vector<boost::msm::TerminateFlag> flag_list;
@@ -68,7 +68,7 @@
// template argument: event which ends the interrupt
// template argument: pointer-to-fsm policy
template <class EndInterruptEvent,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct interrupt_state : public state_base<BASE>, SMPtrPolicy
+struct interrupt_state : public boost::msm::front::detail::state_base<BASE>, SMPtrPolicy
{
// tags
typedef ::boost::mpl::vector<boost::msm::InterruptedFlag,
@@ -94,7 +94,7 @@
// template argument: pointer-to-fsm policy
template<int ZoneIndex=-1,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
struct entry_pseudo_state
- : public state_base<BASE>,SMPtrPolicy
+ : public boost::msm::front::detail::state_base<BASE>,SMPtrPolicy
{
// tags
typedef int pseudo_entry;
@@ -110,7 +110,7 @@
// template argument: event to forward
// template argument: pointer-to-fsm policy
template<class Event,class BASE = default_base_state,class SMPtrPolicy = no_sm_ptr>
-struct exit_pseudo_state : public state_base<BASE> , SMPtrPolicy
+struct exit_pseudo_state : public boost::msm::front::detail::state_base<BASE> , SMPtrPolicy
{
typedef Event event;
typedef BASE Base;
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk