overwrite_buffer クラス
overwrite_buffer メッセージング ブロックは、一度に 1 つのメッセージを格納することができる、複数のターゲットと複数のソースを持つ順序付けられた propagator_block です。 新しいメッセージが与えられると、それまで格納されていたメッセージは上書きされます。
template<
class _Type
>
class overwrite_buffer : public propagator_block<multi_link_registry<ITarget<_Type>>, multi_link_registry<ISource<_Type>>>;
パラメーター
- _Type
このバッファーが格納し、反映するメッセージのペイロード型。
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
オーバーロードされます。 overwrite_buffer メッセージング ブロックを構築します。 |
|
overwrite_buffer メッセージング ブロックを破棄します。 |
パブリック メソッド
名前 |
説明 |
---|---|
この overwrite_buffer メッセージング ブロックが既に値を持っているかどうかをチェックします。 |
|
overwrite_buffer メッセージング ブロックに格納されるメッセージの現在のペイロードへの参照を取得します。 |
プロテクト メソッド
名前 |
説明 |
---|---|
この overwrite_buffer メッセージング ブロックによって提供されたメッセージを受け入れ、そのメッセージのコピーを呼び出し元に返します。 |
|
この overwrite_buffer メッセージング ブロックによって以前に提供され、ターゲットによって予約されたメッセージを使用して、メッセージのコピーを呼び出し元に返します。 |
|
新しいターゲットがこの overwrite_buffer メッセージング ブロックにリンクされたことを通知するコールバックです。 |
|
ISource ブロックからこの overwrite_buffer メッセージング ブロックにメッセージを非同期に渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。 |
|
message_PMessage をこの overwrite_buffer メッセージング ブロックに配置し、それをリンクされたすべてのターゲットに提供します。 |
|
以前に行われたメッセージの予約を解放します。(source_block::release_message をオーバーライドします。) |
|
この overwrite_buffer メッセージング ブロックによって以前に提供されたメッセージを予約します。(source_block::reserve_message をオーバーライドします。) |
|
予約が解放された後で反映を再開します。(source_block::resume_propagation をオーバーライドします。) |
|
ISource ブロックからこの overwrite_buffer メッセージング ブロックにメッセージを同期的に渡します。 このメソッドは、ソース ブロックから呼び出されたときに send メソッドによって呼び出されます。 |
|
supports_anonymous_source のメソッドをこのブロックがリンクされていないソースによって提供されたメッセージを受け取ることができることを示すためにオーバーライドします。オーバーライド (ITarget::supports_anonymous_source)。 |
解説
overwrite_buffer メッセージング ブロックは、そこに格納されているメッセージのコピーを個々のターゲットに反映します。
詳細については、「非同期メッセージ ブロック」を参照してください。
継承階層
overwrite_buffer
必要条件
ヘッダー: agents.h
名前空間: concurrency