次の方法で共有


message_processor クラス

message_processor クラスは、message オブジェクトを処理するための抽象基底クラスです。 メッセージの順序は保証されません。

構文

template<class T>
class message_processor;

パラメーター

T
この message_processor オブジェクトによって処理されるメッセージ内のペイロードのデータ型。

メンバー

パブリック typedef

名前 説明
type T の型エイリアス。

パブリック メソッド

名前 説明
async_send 派生クラスでオーバーライドされると、メッセージをブロックに非同期的に挿入します。
sync_send 派生クラスでオーバーライドされると、メッセージをブロックに同期的に挿入します。
待機 派生クラスでオーバーライドされると、すべての非同期操作が完了するまで待機します。

保護メソッド

名前 説明
process_incoming_message 派生クラスでオーバーライドされると、メッセージのブロックへの転送処理を実行します。 新しいメッセージが追加され、キューが空であることが判明するごとに 1 回呼び出されます。

継承階層

message_processor

要件

ヘッダー: agents.h

名前空間: concurrency

async_send

派生クラスでオーバーライドされると、メッセージをブロックに非同期的に挿入します。

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

パラメーター

_Msg
非同期的に送信する message オブジェクト。

解説

プロセッサの実装では、このメソッドをオーバーライドする必要があります。

process_incoming_message

派生クラスでオーバーライドされると、メッセージのブロックへの転送処理を実行します。 新しいメッセージが追加され、キューが空であることが判明するごとに 1 回呼び出されます。

virtual void process_incoming_message() = 0;

解説

メッセージ ブロックの実装では、このメソッドをオーバーライドする必要があります。

sync_send

派生クラスでオーバーライドされると、メッセージをブロックに同期的に挿入します。

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

パラメーター

_Msg
同期的に送信する message オブジェクト。

解説

プロセッサの実装では、このメソッドをオーバーライドする必要があります。

wait

派生クラスでオーバーライドされると、すべての非同期操作が完了するまで待機します。

virtual void wait() = 0;

解説

プロセッサの実装では、このメソッドをオーバーライドする必要があります。

関連項目

コンカレンシー名前空間
ordered_message_processor クラス