Hitachi

VisiBroker Version 5 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()を呼び出したあとでインタセプトポイントを呼び出します。

〈この節の構成〉