27.20 ServerRequestInfo
class PortableInterceptor::ServerRequestInfo :
public virtual RequestInfo,
public virtual CORBA::LocalObjectこのクラスはRequestInfoから派生したクラスで,サーバ側インタセプトポイントに渡されます。ServerRequestInfoのメソッドは,一部のインタセプトポイントでは有効ではありません。
次の表に,属性またはメソッドの有効性を示します。無効の属性またはメソッドにアクセスすると,標準マイナーコード14のBAD_INV_ORDER例外が発生します。
|
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()を呼び出したあとでインタセプトポイントを呼び出します。