Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス

[目次][索引][前へ][次へ]

27.20 ServerRequestInfo

 
class PortableInterceptor::ServerRequestInfo :
                       public virtual RequestInfo,
                       public virtual CORBA::LocalObject
 

このクラスはRequestInfoから派生したクラスで,サーバ側インタセプトポイントに渡されます。ServerRequestInfoのメソッドは,一部のインタセプトポイントでは有効ではありません。

次の表に,属性またはメソッドの有効性を示します。無効の属性またはメソッドにアクセスすると,標準マイナーコード14のBAD_INV_ORDER例外が発生します。

表27-3 ServerRequestInfoの有効性(C++)

  receive_request_service_contexts receive_request send_reply send_exception send_other
request_id
operation
arguments × ※1 × ×
exceptions ×
contexts ×
operation_context × × ×
result × × × ×
response_expected
sync_scope
reply_status × ×
forward_reference × × × × ※2
get_slot
get_request_service_context
get_reply_service_context × ×
sending_exception × × × ×
object_id × ※3 ※3
adapter_id × ※3 ※3
target_most_derived_interface × ×※4 ×※4 ×※4
get_server_policy
set_slot
target_is_a × ×※4 ×※4 ×※4
add_reply_service_context

注※1
ServerRequestInfoがreceive_request()に渡される場合,in,inout,またはoutの各引数のリストにエントリがありますが,使用できるのはin引数とinout引数だけです。

注※2
reply_status()がLOCATION_FORWARDを返さない場合,この属性にアクセスすると標準マイナーコード14のBAD_INV_ORDER例外が発生します。

注※3
Servant Locatorでロケーションのフォワードや,例外が発生した場合,この属性またはメソッドは,当該インタセプトポイントで使用できないことがあります。使用できない場合は,標準マイナーコード1のNO_RESOURCES例外が発生します。

注※4
このメソッドは,当該インタセプトポイントで使用できません。
それは,必要な情報を取得するためにはターゲットオブジェクトのサーバントにアクセスする必要がありますが,この時点でORBはこのサーバントを使用できないためです。例えば,ServantLocatorを使用するPOAがオブジェクトのアダプタである場合,ORBは,ServantLocator::postinvoke()を呼び出したあとでインタセプトポイントを呼び出します。
<この節の構成>
27.20.1 インクルードファイル
27.20.2 ServerRequestInfoのメソッド