13.17 リスナー・クラス

Listenerクラスは、指定のキューで登録済AgentとしてMessageをリスニングする機能をカプセル化します。

表13-23 Listenerメソッドの概要

メソッド 概要

Listener()

Listenerクラスのコンストラクタです。

getAgentList()

Listenerがサービスを提供するAgentのリストを取り出します。

getTimeOutForListen()

コールのタイムアウトを取り出します。

listen()

Messageをリスニングし、Messageの宛先であるAgentの名前を戻します。

setAgentList()

Listenerがサービスを提供するAgentのリストを指定します。

setTimeOutForListen()

listen()のコールのタイムアウトを指定します。

13.17.1 Listener()

Listenerクラスのコンストラクタです。

構文 説明
Listener(
   const Connection* conn);

Listenerオブジェクトを作成します。

Listener(
   const Connection* conn
   vector<Agent> &aglist,
   int waitTime=0);

Listenerオブジェクトを作成し、かわりにキューでリスニングするAgentのリストを設定します。待機時間も設定します。デフォルトは待機なしです。

パラメータ 説明
conn

新規Listenerオブジェクトの接続を指定します。

aglist

Listenerオブジェクトがかわりにキューで待機するエージェントのリストを指定します。これは、このListenerのクライアントです。

waitTime

クライアントにとって重要なメッセージをキューで待機する秒数を指定します。

13.17.2 getAgentList()

Listenerがサービスを提供するAgentのリストを取り出します。

構文

vector<Agent> getAgentList() const;

13.17.3 getTimeOutForListen()

コールのタイムアウトを取り出します。

構文

int getTimeOutForListen() const;

13.17.4 listen()

前のsetTimeOutForListen()のコールで指定された時間だけ、指定されたAgentとしてMessageをリスニングします。MessageがあるAgentを戻します。

これはブロック化コールです。このコールの前に、次の手順を実行してください。

  • setAgentList()をコールして各エージェントのリスナーを登録します。

  • リスト上のAgentの1つにMessageが届いたときに戻されるsetTimeOutForListen()に対してブロック化コールを行います。待機時間が経過する前にMessageが届かない場合、コールはエラーを返します。

構文

Agent listen();

13.17.5 setAgentList()

Listenerがサービスを提供するAgentのリストを指定します。

構文

void setAgentList(
   vector<Agent>& agList);
パラメータ 説明
agList

Agentのリストを指定します。

13.17.6 setTimeOutForListen()

listen()のコールのタイムアウトを指定します。

構文

void setTimeOutForListen(
   int waitTime);
パラメータ 説明
waitTime

指定のキューでListenerMessageを待機する時間隔を秒単位で指定します。