次の方法で共有


multi_link_registry クラス

multi_link_registry オブジェクトは、複数のソース ブロックまたは複数のターゲット ブロックを管理する network_link_registry です。

構文

template<class _Block>
class multi_link_registry : public network_link_registry<_Block>;

パラメーター

_Block
multi_link_registry オブジェクトに格納されているブロック データ型。

メンバー

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

名前 説明
multi_link_registry multi_link_registry オブジェクトを構築します。
~multi_link_registry デストラクター multi_link_registry オブジェクトを破棄します。

パブリック メソッド

名前 説明
add multi_link_registry オブジェクトにリンクを追加します。 (network_link_registry::add をオーバーライドします)。
begin multi_link_registry オブジェクト内の最初の要素の反復子を返します。 (network_link_registry::begin をオーバーライドします)。
contains multi_link_registry オブジェクトで、指定されたブロックを検索します (network_link_registry::contains をオーバーライドします)。
count multi_link_registry オブジェクト内の項目の数をカウントします (network_link_registry::count をオーバーライドします)。
remove multi_link_registry オブジェクトからリンクを削除します。 (network_link_registry::remove をオーバーライドします)。
set_bound multi_link_registry オブジェクトが保持できるリンク数の上限を設定します。

継承階層

network_link_registry

multi_link_registry

要件

ヘッダー: agents.h

名前空間: concurrency

add

multi_link_registry オブジェクトにリンクを追加します。

virtual void add(_EType _Link);

パラメーター

_Link
追加するブロックへのポインター。

解説

レジストリにリンクが既に存在する場合、または set_bound 関数を使用して上限が既に設定されており、その後、リンクが削除された場合、このメソッドは invalid_link_target 例外をスローします。

begin

multi_link_registry オブジェクト内の最初の要素の反復子を返します。

virtual iterator begin();

戻り値

multi_link_registry オブジェクト内の最初の要素をアドレス指定する反復子。

解説

終了状態は NULL リンクで示されます。

contains

multi_link_registry オブジェクトで、指定されたブロックを検索します

virtual bool contains(_EType _Link);

パラメーター

_Link
multi_link_registry オブジェクト内の検索対象となるブロックへのポインター。

戻り値

指定されたブロックが見つかった場合は true、それ以外の場合は false

count

multi_link_registry オブジェクト内の項目の数をカウントします

virtual size_t count();

戻り値

multi_link_registry オブジェクト内の項目の数。

multi_link_registry

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

multi_link_registry();

~multi_link_registry

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

virtual ~multi_link_registry();

解説

このメソッドは、すべてのリンクが削除される前に呼び出されると、invalid_operation 例外をスローします。

remove

multi_link_registry オブジェクトからリンクを削除します。

virtual bool remove(_EType _Link);

パラメーター

_Link
削除するブロック (見つかった場合) へのポインター。

戻り値

リンクが見つかって削除された場合は true、それ以外の場合は false

set_bound

multi_link_registry オブジェクトが保持できるリンク数の上限を設定します。

void set_bound(size_t _MaxLinks);

パラメーター

_MaxLinks
multi_link_registry オブジェクトが保持できるリンクの最大数。

解説

上限が設定された後、エントリのリンクを解除すると、multi_link_registry オブジェクトは変更不可能な状態になります。この状態で add をさらに呼び出すと、invalid_link_target 例外がスローされます。

関連項目

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