Added boost header
This commit is contained in:
87
test/external/boost/statechart/event_processor.hpp
vendored
Normal file
87
test/external/boost/statechart/event_processor.hpp
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
#ifndef BOOST_STATECHART_EVENT_PROCESSOR_INCLUDED
|
||||
#define BOOST_STATECHART_EVENT_PROCESSOR_INCLUDED
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright 2002-2008 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)
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
namespace boost
|
||||
{
|
||||
namespace statechart
|
||||
{
|
||||
|
||||
|
||||
|
||||
class event_base;
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
template< class Scheduler >
|
||||
class event_processor
|
||||
{
|
||||
public:
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual ~event_processor() {}
|
||||
|
||||
Scheduler & my_scheduler() const
|
||||
{
|
||||
return myScheduler_;
|
||||
}
|
||||
|
||||
typedef typename Scheduler::processor_handle processor_handle;
|
||||
|
||||
processor_handle my_handle() const
|
||||
{
|
||||
return myHandle_;
|
||||
}
|
||||
|
||||
void initiate()
|
||||
{
|
||||
initiate_impl();
|
||||
}
|
||||
|
||||
void process_event( const event_base & evt )
|
||||
{
|
||||
process_event_impl( evt );
|
||||
}
|
||||
|
||||
void terminate()
|
||||
{
|
||||
terminate_impl();
|
||||
}
|
||||
|
||||
protected:
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
typedef const typename Scheduler::processor_context & my_context;
|
||||
|
||||
event_processor( my_context ctx ) :
|
||||
myScheduler_( ctx.my_scheduler() ),
|
||||
myHandle_( ctx.my_handle() )
|
||||
{
|
||||
}
|
||||
|
||||
private:
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void initiate_impl() = 0;
|
||||
virtual void process_event_impl( const event_base & evt ) = 0;
|
||||
virtual void terminate_impl() = 0;
|
||||
|
||||
// avoids C4512 (assignment operator could not be generated)
|
||||
event_processor & operator=( const event_processor & );
|
||||
|
||||
Scheduler & myScheduler_;
|
||||
const processor_handle myHandle_;
|
||||
};
|
||||
|
||||
|
||||
|
||||
} // namespace statechart
|
||||
} // namespace boost
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user