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::has_value メソッド

この overwrite_buffer メッセージング ブロックが既に値を持っているかどうかをチェックします。

overwrite_buffer::value メソッド

overwrite_buffer メッセージング ブロックに格納されるメッセージの現在のペイロードへの参照を取得します。

プロテクト メソッド

名前

説明

overwrite_buffer::accept_message メソッド

この overwrite_buffer メッセージング ブロックによって提供されたメッセージを受け入れ、そのメッセージのコピーを呼び出し元に返します。

overwrite_buffer::consume_message メソッド

overwrite_buffer メッセージング ブロックによって以前に提供され、ターゲットによって予約されたメッセージを使用し、メッセージのコピーを呼び出し元に返します。

overwrite_buffer::link_target_notification メソッド

新しいターゲットがこの overwrite_buffer メッセージング ブロックにリンクされたことを通知するコールバックです。

overwrite_buffer::propagate_message メソッド

ISource ブロックからこの overwrite_buffer メッセージング ブロックにメッセージを非同期に渡します。 このメソッドは、ソース ブロックから呼び出されたときに propagate メソッドによって呼び出されます。

overwrite_buffer::propagate_to_any_targets メソッド

message_PMessage をこの overwrite_buffer メッセージング ブロックに配置し、それをリンクされたすべてのターゲットに提供します。

overwrite_buffer::release_message メソッド

以前に行われたメッセージの予約を解放します。 (source_block::release_message をオーバーライドします。)

overwrite_buffer::reserve_message メソッド

この overwrite_buffer メッセージング ブロックによって以前に提供されたメッセージを予約します。 (source_block::reserve_message をオーバーライドします。)

overwrite_buffer::resume_propagation メソッド

予約が解放された後で反映を再開します。 (source_block::resume_propagation をオーバーライドします。)

overwrite_buffer::send_message メソッド

ISource ブロックからこの overwrite_buffer メッセージング ブロックにメッセージを同期的に渡します。 このメソッドは、ソース ブロックから呼び出されたときに send メソッドによって呼び出されます。

解説

overwrite_buffer メッセージング ブロックは、そこに格納されているメッセージのコピーを個々のターゲットに反映します。

詳細については、「非同期メッセージ ブロック」を参照してください。

継承階層

ISource

source_block

ITarget

propagator_block

overwrite_buffer

必要条件

ヘッダー: agents.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

unbounded_buffer クラス

single_assignment クラス