message_processor Class

 

The message_processor class is the abstract base class for processing of message objects. There is no guarantee on the ordering of the messages.

template<class T>
class message_processor;

Parameters

T
The data type of the payload within messages handled by this message_processor object.

Public Typedefs

NameDescription
typeA type alias for T.

Public Methods

NameDescription
message_processor::async_send MethodWhen overridden in a derived class, places messages into the block asynchronously.
message_processor::sync_send MethodWhen overridden in a derived class, places messages into the block synchronously.
message_processor::wait MethodWhen overridden in a derived class, waits for all asynchronous operations to complete.

Protected Methods

NameDescription
message_processor::process_incoming_message MethodWhen overridden in a derived class, performs the forward processing of messages into the block. Called once every time a new message is added and the queue is found to be empty.

message_processor

Header: agents.h

Namespace: concurrency

When overridden in a derived class, places messages into the block asynchronously.

virtual void async_send(_Inout_opt_ message<T>* _Msg) = 0;

Parameters

_Msg
A message object to send asynchronously.

Remarks

Processor implementations should override this method.

When overridden in a derived class, performs the forward processing of messages into the block. Called once every time a new message is added and the queue is found to be empty.

virtual void process_incoming_message() = 0;

Remarks

Message block implementations should override this method.

When overridden in a derived class, places messages into the block synchronously.

virtual void sync_send(_Inout_opt_ message<T>* _Msg) = 0;

Parameters

_Msg
A message object to send synchronously.

Remarks

Processor implementations should override this method.

When overridden in a derived class, waits for all asynchronous operations to complete.

virtual void wait() = 0;

Remarks

Processor implementations should override this method.

concurrency Namespace
ordered_message_processor Class

Show: