intra-mart(R)
5.0

jp.co.intra_mart.common.aid.jdk.util
クラス EventQueueController

java.lang.Object
  拡張jp.co.intra_mart.common.aid.jdk.util.EventQueueController

public class EventQueueController
extends Object

このクラスは、イベントリスナーを実行するイベント機能を実装します。

イベントコントローラは、指定された時間間隔に従ってリスナー登録状況を確認し、 リスナーの登録が1つ以上あった場合、これらを専用スレッドで実行します。 このとき、イベントリスナーの実行順と実行の直列化が保証されます。
これらの機能により、通常の関数実行や java.lang.Thread クラスを利用した 並列処理などと異なった機能を実装することができます。

このクラスを利用することにより、現在の処理とイベント処理を並列化することが できます。また、一つのコントローラは同時に一つのイベントリスナーしか 実行しないため、それぞれのリスナーの処理が並列処理されることはありません。 従って、リスナーはマルチスレッドを意識したプログラムにする必要がありますが、 リスナー間でマルチスレッドを意識する必要はありません。

導入されたバージョン:
version 5.0
関連項目:
EventListener

コンストラクタの概要
EventQueueController()
          イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。
EventQueueController(long millis)
          イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。
 
メソッドの概要
 void entry(EventListener listener)
          イベントリスナーの登録。
 void eventGenerating()
          キューに登録されているイベントリスナーを一つ実行します。
protected  void finalize()
          このオブジェクトがガーベージコレクションによって破棄される時に、 ガーベージコレクタによって呼び出されます。
 void flush()
          キューに溜まっているすべてのイベントリスナーを実行します。
 void setCapacity(int max)
          キューの容量を変更します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

EventQueueController

public EventQueueController()
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。 コントローラがリスナー登録状況を監視する時間間隔はデフォルト値(60秒)が 適用されます。


EventQueueController

public EventQueueController(long millis)
                     throws IllegalArgumentException
イベントリスナーを管理・実行するためのコントローラ・オブジェクトを 構築します。 millis は、リスナーの登録状況を監視する時間間隔です。 コントローラは、リスナーが一つも登録されていない状態になると、 millis ミリ秒間隔でリスナー登録の有無を確認します。

パラメータ:
millis - イベントの監視間隔(ミリ秒)
例外:
IllegalArgumentException - millis が 0 以下の場合
メソッドの詳細

setCapacity

public void setCapacity(int max)
                 throws IllegalStateException,
                        IllegalArgumentException
キューの容量を変更します。

パラメータ:
max - イベントをプールできる最大量
例外:
IllegalStateException - max 個以上のリスナーが登録されている場合
IllegalArgumentException - max が 0 以下の場合

entry

public void entry(EventListener listener)
           throws NullPointerException,
                  IndexOutOfBoundsException,
                  IllegalStateException
イベントリスナーの登録。
イベントリスナーは、一旦キューに溜められます。 キューに保管されたリスナーは、 このコントローラにより現在実行中のスレッドとは 別のスレッドで登録順に呼び出されます。

実行されたリスナーは、処理が終了すると破棄されます。

通常のスレッドクラスを利用した並列処理との違いは、 イベントリスナーが登録順に実行される点と、 イベントリスナーの実行が直列化される点にあります。

パラメータ:
listener - イベントリスナー
例外:
NullPointerException - listener が null の場合
IndexOutOfBoundsException - キューが飽和状態の場合
IllegalStateException - コントローラが破棄処理済の場合

flush

public void flush()
キューに溜まっているすべてのイベントリスナーを実行します。

このメソッドは、現在実行中のスレッドで すべてのイベント処理を行います。


eventGenerating

public void eventGenerating()
                     throws NoSuchElementException
キューに登録されているイベントリスナーを一つ実行します。 実行されるリスナーは、現在キューに保管されているリスナーの中で 最も過去に登録されたリスナーです。 このメソッドは、現在実行中のスレッドで 登録順で最も過去のイベントを1つ実行します。

例外:
NoSuchElementException - 登録リスナーがない場合

finalize

protected void finalize()
                 throws Throwable
このオブジェクトがガーベージコレクションによって破棄される時に、 ガーベージコレクタによって呼び出されます。
このオブジェクトの全てのリソースを破棄します。

例外:
Throwable

intra-mart(R)
5.0

Copyright © 2000-2005 NTT DATA INTRAMART CO.,LTD. All Rights Reserved.