次の方法で共有


source_block クラス

source_block クラスは、ソースのみのブロックの抽象基底クラスです。 このクラスには、基本的なリンク管理機能および一般的なエラー チェック機能が用意されています。

template<
   class _TargetLinkRegistry,
   class _MessageProcessorType = ordered_message_processor<typename _TargetLinkRegistry::type::type>
>
class source_block : public ISource<typename _TargetLinkRegistry::type::type>;

パラメーター

  • _TargetLinkRegistry
    ターゲット リンクの保持に使用されるリンク レジストリ。

  • _MessageProcessorType
    メッセージ処理のためのプロセッサの種類。

メンバー

パブリック typedef

名前

説明

target_iterator

接続されたターゲットを走査する反復子。

パブリック コンストラクター

名前

説明

source_block::source_block コンストラクター

source_block オブジェクトを構築します。

source_block::~source_block デストラクター

source_block オブジェクトを破棄します。

パブリック メソッド

名前

説明

source_block::accept メソッド

この source_block オブジェクトによって提供されたメッセージを受け入れ、所有権を呼び出し元に移譲します。

source_block::acquire_ref メソッド

この source_block オブジェクトの参照カウントを取得し、削除されるのを防ぎます。

source_block::consume メソッド

この source_block オブジェクトによって以前に提供され、ターゲットによって正常に予約されたメッセージを使用して、所有権を呼び出し元に移譲します。

source_block::link_target メソッド

ターゲット ブロックをこの source_block オブジェクトにリンクします。

source_block::release メソッド

以前に正常に行われたメッセージの予約を解放します。

source_block::release_ref メソッド

この source_block オブジェクトの参照カウントを解放します。

source_block::reserve メソッド

この source_block オブジェクトによって以前に提供されたメッセージを予約します。

source_block::unlink_target メソッド

この source_block オブジェクトからターゲット ブロックのリンクを解除します。

source_block::unlink_targets メソッド

この source_block オブジェクトからすべてのターゲット ブロックのリンクを解除します。(ISource::unlink_targets をオーバーライドします。)

プロテクト メソッド

名前

説明

source_block::accept_message メソッド

派生クラスでオーバーライドされると、ソースによって提供されたメッセージを受け付けます。 メッセージ ブロックでは、このメソッドをオーバーライドして、_MsgId を検証し、メッセージを返す必要があります。

source_block::async_send メソッド

メッセージを非同期的にキューに配置し、反映タスクがまだ実行されていなければ、開始します。

source_block::consume_message メソッド

派生クラスでオーバーライドされると、以前に予約されたメッセージを使用します。

source_block::enable_batched_processing メソッド

このブロックのバッチ プロセッシングを有効にします。

source_block::initialize_source メソッド

この source_block 内で message_propagator を初期化します。

source_block::link_target_notification メソッド

新しいターゲットがこの source_block オブジェクトにリンクされたことを通知するコールバックです。

source_block::process_input_messages メソッド

プロセス入力メッセージ。 これは、source_block から派生する伝達子ブロックの場合にのみ有効です

source_block::propagate_output_messages メソッド

ターゲットには、メッセージ。

source_block::propagate_to_any_targets メソッド

派生クラスでオーバーライドされると、指定されたメッセージをリンクされたターゲットのいずれかまたはすべてに伝達します。 これは、メッセージ ブロックの主要な伝達ルーチンです。

source_block::release_message メソッド

派生クラスでオーバーライドされると、以前に行われたメッセージの予約を解放します。

source_block::remove_targets メソッド

このソース ブロックに対するすべてのターゲット リンクを削除します。 このメソッドはデストラクターから呼び出します。

source_block::reserve_message メソッド

派生クラスでオーバーライドされると、この source_block オブジェクトによって以前に提供されたメッセージを予約します。

source_block::resume_propagation メソッド

派生クラスでオーバーライドされると、予約が解放された後で反映を再開します。

source_block::sync_send メソッド

メッセージを同期的にキューに配置し、反映タスクがまだ実行されていなければ、開始します。

source_block::unlink_target_notification メソッド

ターゲットがこの source_block オブジェクトからリンク解除されたことを通知するコールバックです。

source_block::wait_for_outstanding_async_sends メソッド

すべての非同期伝達が完了するまで待機します。 この伝達子に固有のスピン待機は、ブロックを破棄する前にすべての非同期伝達が完了する時間を確保するためにメッセージ ブロックのデストラクター内で使用します。

解説

このクラスに用意されているリンク管理および同期を利用するには、メッセージ ブロックをこのブロックから派生させる必要があります。

継承階層

ISource

source_block

必要条件

ヘッダー: agents.h

名前空間: concurrency

参照

関連項目

concurrency 名前空間

ISource クラス