ordered_message_processor Class
An ordered_message_processor
is a message_processor
that allows message blocks to process messages in the order they were received.
Syntax
template<class T>
class ordered_message_processor : public message_processor<T>;
Parameters
T
The payload type of messages handled by the processor.
Members
Public Typedefs
Name | Description |
---|---|
type |
A type alias for T . |
Public Constructors
Name | Description |
---|---|
ordered_message_processor | Constructs an ordered_message_processor object. |
~ordered_message_processor Destructor | Destroys the ordered_message_processor object. |
Public Methods
Name | Description |
---|---|
async_send | Asynchronously queues up messages and starts a processing task, if this has not been done already. (Overrides message_processor::async_send.) |
initialize | Initializes the ordered_message_processor object with the appropriate callback function, scheduler and schedule group. |
initialize_batched_processing | Initialize batched message processing |
sync_send | Synchronously queues up messages and starts a processing task, if this has not been done already. (Overrides message_processor::sync_send.) |
wait | A processor-specific spin wait used in destructors of message blocks to make sure that all asynchronous processing tasks have time to finish before destroying the block. (Overrides message_processor::wait.) |
Protected Methods
Name | Description |
---|---|
process_incoming_message | The processing function that is called asynchronously. It dequeues messages and begins processing them. (Overrides message_processor::process_incoming_message.) |
Inheritance Hierarchy
ordered_message_processor
Requirements
Header: agents.h
Namespace: concurrency
async_send
Asynchronously queues up messages and starts a processing task, if this has not been done already.
virtual void async_send(_Inout_opt_ message<T>* _Msg);
Parameters
_Msg
A pointer to a message.
initialize
Initializes the ordered_message_processor
object with the appropriate callback function, scheduler and schedule group.
void initialize(
_Inout_opt_ Scheduler* _PScheduler,
_Inout_opt_ ScheduleGroup* _PScheduleGroup,
_Handler_method const& _Handler);
Parameters
_PScheduler
A pointer to the scheduler to be used for scheduling light-weight tasks.
_PScheduleGroup
A pointer to the schedule group to be used for scheduling light-weight tasks.
_Handler
The handler functor invoked during callback.
initialize_batched_processing
Initialize batched message processing
virtual void initialize_batched_processing(
_Handler_method const& _Processor,
_Propagator_method const& _Propagator);
Parameters
_Processor
The processor functor invoked during callback.
_Propagator
The propagator functor invoked during callback.
ordered_message_processor
Constructs an ordered_message_processor
object.
ordered_message_processor();
Remarks
This ordered_message_processor
will not schedule asynchronous or synchronous handlers until the initialize
function is called.
~ordered_message_processor
Destroys the ordered_message_processor
object.
virtual ~ordered_message_processor();
Remarks
Waits for all outstanding asynchronous operations before destroying the processor.
process_incoming_message
The processing function that is called asynchronously. It dequeues messages and begins processing them.
virtual void process_incoming_message();
sync_send
Synchronously queues up messages and starts a processing task, if this has not been done already.
virtual void sync_send(_Inout_opt_ message<T>* _Msg);
Parameters
_Msg
A pointer to a message.
wait
A processor-specific spin wait used in destructors of message blocks to make sure that all asynchronous processing tasks have time to finish before destroying the block.
virtual void wait();