ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)
Interstage

2.12.1 Servantインタフェース

2.12.1.1 PortableServer::ServantBase::_default_POA()

名前

PortableServer::ServantBase::_default_POA

形式

PortableServer::POA_ptr  _default_POA();

機能説明

POA管理外のServantオブジェクトで当メソッドをコールすることにより、デフォルトのPOAオブジェクトが返されます。デフォルトPOAとしては、Servantオブジェクトが接続しているORBをもとに、ルートPOAが返されます。(ただし、当クラスのサブクラスでは、当メソッドをオーバライドして使用できるため、この場合は別のPOAオブジェクトを返すことが可能です。)

復帰値

正常終了した場合は、デフォルトのPOAオブジェクトが返されます。

異常終了した場合は、以下の例外が発生します。

CORBA::SystemException

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.12.1.2 PortableServer::ServantBase::_get_interface()

名前

PortableServer::ServantBase::_get_interface

形式

CORBA::InterfaceDef_ptr
    PortableServer::ServantBase::_get_interface(
              CORBA::Environment& = CORBA::Environment() )
              throw( CORBA::SystemException );

機能説明

対象のServantのリポジトリIDを持つオブジェクトリファレンスを検索し、そのインタフェースリポジトリオブジェクトを返します。(ただし、当クラスのサブクラスでは、当メソッドをオーバライドして使用できるため、この場合は別のインタフェースリポジトリオブジェクトを返すことが可能です。)

復帰値

正常終了した場合は、対象のServantのインタフェースリポジトリオブジェクトを返します。
異常終了した場合は、NIL(空の)オブジェクトリファレンスが返され、以下の例外が発生します。

  CORBA::SystemException

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.12.1.3 PortableServer::ServantBase::_is_a()

名前

PortableServer::ServantBase::_is_a

形式

CORBA::Boolean  PortableServer::ServantBase::_is_a(
              const char*  logical_type_id,
              CORBA::Environment& = CORBA::Environment() )
              throw( CORBA::SystemException );

パラメタ

logical_type_id - リポジトリIDの文字列。

機能説明

対象のServantが、logical_type_idで指定したリポジトリIDと同じリポジトリIDを持つか否かを検索します(ただし、当クラスのサブクラスでは、当メソッドをオーバライドして使用できるため、この場合は別のリポジトリIDと比較することが可能です)。

復帰値

true : Servantがlogical_type_idと同じリポジトリIDを持ちます。
false : Servantがlogical_type_idと異なるリポジトリIDを持ちます。

異常終了した場合は、以下の例外が発生します。

  CORBA::SystemException

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.12.1.4 PortableServer::ServantBase::_non_existent()

名前

PortableServer::ServantBase::_non_existent

形式

CORBA::Boolean  PortableServer::ServantBase::_non_existent(
              CORBA::Environment& = CORBA::Environment() )
              throw( CORBA::SystemException );

機能説明

当メソッドをコールすると、デフォルトではオブジェクトが存在することを示すため、常にfalseが返されます。Servantが関連付けられたPOAのid_uniqueness_policyにUNIQUE_IDが指定されている場合は、このメソッドをオーバライドする必要はありません。MULTIPLE_IDが指定されている場合は、当メソッドをオーバライドし、その中で実際にオブジェクトが存在するか否かを判定する必要があります。

復帰値

正常終了した場合は、常にfalseが返されます。

異常終了した場合は、以下の例外が発生します。

  CORBA::SystemException

システム例外発生時に設定された例外情報およびマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

2.12.1.5 PortableServer::ServantBase::_add_ref()

名前

PortableServer::ServantBase::_add_ref

形式

void  PortableServer::ServantBase::_add_ref();

機能説明

当クラスのサブクラスでは、当メソッドをオーバライドして使用できるため、アプリケーションがServantを実行中に、そのServantが破棄されることを防ぐためのリファレンスカウンタを実装することが可能です。ServantBaseクラスが提供するデフォルト_add_ref()メソッドでは何も行いません。

復帰値

ありません。

2.12.1.6 PortableServer::ServantBase::_remove_ref()

名前

PortableServer::ServantBase::_remove_ref

形式

void  PortableServer::ServantBase::_remove_ref();

機能説明

当クラスのサブクラスでは、当メソッドをオーバライドして使用できるため、アプリケーションがServantを実行中に、そのServantが破棄されることを防ぐためのリファレンスカウンタを実装することが可能です。ServantBaseクラスが提供するデフォルト_remove_ref()メソッドでは何も行いません。

復帰値

ありません。

2.12.1.7 PortableServer::ServantBase::servant_delete()

名前

PortableServer::ServantBase::servant_delete

形式

void  servant_delete();

機能説明

対象のServantオブジェクトを削除します。ActiveObjectMapを使用している場合は、このメソッドを発行する前に、Servantが関連付けられたActiveObjectMapからそのServantを削除するために、PortableServer::POA::deactivate_object()メソッドを呼び出してください。

このメソッドを実行した場合、クライアントが処理中のServantのオペレーションからレスポンスを受け取った後に対象のServantが削除され、それ以降そのServantへのアクセスができなくなります。

また、このメソッドをDefaultServantとして登録されたServantに対して発行する場合には、そのServantに対していったんPortableServer::POA::set_servant()でNULLを渡した後にservant_delete()を行うようにしてください。DefaultServantが登録された状態で当メソッドを発行した場合には何も行いません。

復帰値

ありません。