1 #ifndef BOOST_STATECHART_EVENT_BASE_HPP_INCLUDED
2 #define BOOST_STATECHART_EVENT_BASE_HPP_INCLUDED
11 #include <boost/statechart/detail/rtti_policy.hpp>
12 #include <boost/statechart/detail/counted_base.hpp>
14 #include <boost/assert.hpp>
15 #include <boost/intrusive_ptr.hpp>
16 #include <boost/config.hpp>
49 class event_base :
public detail::rtti_policy::rtti_base_type<
50 detail::counted_base<> >
52 typedef detail::rtti_policy::rtti_base_type<
53 detail::counted_base<> > base_type;
60 event_base( detail::rtti_policy::id_provider_type idProvider ) :
61 base_type( idProvider )
69 virtual intrusive_ptr< const event_base > clone()
const = 0;
76 #ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
89 if ( pBase->release() )
97 #ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
108 inline intrusive_ptr< const event_base > event_base::intrusive_from_this()
const
110 if ( base_type::ref_counted() )
112 return intrusive_ptr< const event_base >(
this );