Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第11章 バックエンドとの連携> 11.3 利用可能なサービスアダプタ

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