Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第5章 アプリケーションの開発(C++言語) | > 5.3 サーバアプリケーションのプログラミング(Portable Object Adapter:POA) | > 5.3.2 POA概要 |
AdapterActivatorオブジェクトは、リクエストを受信時にPOAオブジェクトを生成するために使用します。POAオブジェクトが生成したオブジェクトリファレンスには、オブジェクトIDに加え、生成元POAオブジェクトを示すPOAidが埋め込まれています。クライアントからのリクエストが送られてきた際、POA idに対応するPOAオブジェクトが検索され、そのPOAオブジェクトがリクエストに対する処理を行います。もし、みつからない場合、検索対象のPOAの親POAオブジェクトにAdapterActivatorオブジェクトが設定されているならば、そのAdapterActivatorオブジェクトに子POAオブジェクトの生成を依頼します。親POAにAdapterActivatorオブジェクトが設定されていない場合は、CORBA::StExcep::OBJ_ADAPTER例外がクライアントに通知されます。
AdapterActivatorオブジェクトは、ユーザが作成し、POAに登録する必要があります。
作成するAdapterActivatorクラスは、PortableServer::AdapterActivatorクラスを継承させる必要があります。また、メソッドとしてunknown_adapter()を実装している必要があります。
【AdapterActivatorクラスの実装形式】
class UserAdapterActivator : public PortableServer::AdapterActivator { public : CORBA::Boolean unknown_adapter(...){...} }
CORBA::Boolean unknown_adapter( PortableServer::POA_ptr parent, CORBA::Char* name, CORBA::Environment& env ); parent : 生成するPOAの親POA name : 生成するPOAのアダプタ名
AdapterActivatorオブジェクトのunknown_adapterメソッドは、PortableServer::POA::find_POAメソッド発行時に呼び出すことも可能です。
以下にAdapterActivatorの処理の流れを示します。
目次
索引
![]() ![]() |