Apcoordinator ユーザーズガイド
|
目次
|
11.3.4 利用者作成サービスアダプタ
AsyncServiceAdapterインタフェースを実装し、サービスアダプタを作成できます。
AsyncServiceFactoryインタフェースで指定したサービス名が、asyncマップで定義したuserタグのname属性と一致する場合に、利用者が作成した指定のサービスアダプタを生成します。
次は、MyAppcServiceというサービス名のアダプタを直接呼び出しするasyncマップの定義例です。
<asyncMap>
<user name="MyAppcService" class="test.MyAppService"/>
|
次は、test.MyAppServiceクラスの定義例です。
package test;
import com.fujitsu.uji.async.*;
public class MyAppService implements AsyncServiceAdapter{
public MyAppService(){
...
}
public void begin(Object parameter) throws AsyncServiceException{
...
}
public AsyncServiceID execute(Object data, Object parameter) throws AsyncServiceException{
...
}
public boolean hasResult(AsyncServiceID id) throws AsyncServiceException{
...
}
public Object getResult(AsyncServiceID id) throws AsyncServiceException{
...
}
public Object removeResult(AsyncServiceID id) throws AsyncServiceException{
...
}
...
|
次は、上記のサービスを利用するプログラム例です。
AsyncServiceFactory factory
= (AsyncServiceFactory)InitialFactory.createFactory(context, InitialFactory.ASYNCSERVICEFACTORY);
// userタグのname属性がMyAppcServiceの環境を参照しサービスアダプタインスタンスを生成する。
AsyncServiceAdapter adapter = factory.createAsyncServiceAdapter("MyAppcService");
adapter.begin(null);
// executeメソッドを呼び出す。
adapter.execute(null, null);
...
|
■beginメソッド
本メソッドで呼び出す利用者アプリケーションの初期化を行います。
■executeメソッド
利用者アプリケーションを実行します。
引数へは呼び出すアプリケーションで利用するパラメタを指定してください。
■getResultメソッド
利用者アプリケーションの結果を参照します。
受け取る結果は、利用者が作成したアダプタの実装に依存します。
結果は、アダプタの実装、サービスの呼び出し方法、および、状態により異なります。
- 直接呼出し
- 利用者の実装した結果が返ります。
- 同期変換
- 利用者の実装した結果が返ります。
- 突き放し
- nullが返ります。
- 突き合せ(結果待ち合わせ中)
- AsyncServiceUnreceivedResultが返ります。
- 突き合せ(結果受け取り後)
- 利用者の実装した結果が返ります。
■AsyncServiceResultListener
突き合せによる呼び出しを行なう場合に、AsyncServiceResultListenerを設定することにより、結果を受け取ることが可能です。
listenerへは、AsyncServiceResultEventが通知されます。通知イベントのgetValueメソッドにより得られるオブジェクトは、利用者の実装したgetResultメソッドが返すオブジェクトが返ります。
All Rights Reserved, Copyright © 富士通株式会社 2000-2005