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_contextsreceive_requestsend_replysend_exceptionsend_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のメソッド