28.8.2 ClientRequestInterceptorのメソッド
-
virtual void preinvoke_premarshal(
CORBA::Object_ptr target,
const char* operation,
IOP::ServiceContextList& service_contexts,
VisClosure& closure);
このメソッドは,リクエストごとに,それらがマーシャリングされる前にORBに呼び出されます。このインタセプタで例外が発生した場合は,即時にリクエストは終了させられます。インタセプタのチェーンでは,処理済みのインタセプタだけがチェーンに残ります。その例外を起こしたリクエストは送信されないで,exception_occurred()がインタセプタのチェーン全体に対して呼び出されます。
-
target
サーバへのバインドを試みたクライアントオブジェクト
-
operation
呼び出すオペレーションの名前を識別します。
-
service_contexts
ORBが割り当てたサービス。このサービスはOMGに登録されているタグで識別されます。
-
closure
あるインタセプタメソッドが保存したデータを格納する場合があります。その場合,このデータをほかのインタセプタメソッドがあとで取得できます。
-
-
virtual void preinvoke_postmarshal(
CORBA::Object_ptr target,
CORBA::MarshalOutBuffer& payload,
VISClosure& closure);
このメソッドは,リクエストごとに,リクエストのマーシャリングが済んでから送信されるまでの間に呼び出されます。このメソッドで例外が発生した場合は,残りのチェーンは呼び出されません。また,該当するリクエストはサーバに送信されません。その後,exception_occurred()はインタセプタのチェーン全体に呼び出されます。
-
target
サーバへのバインドを試みたクライアントオブジェクト
-
payload
マーシャリング済みバッファ
-
closure
あるインタセプタメソッドが保存したデータを格納する場合があります。その場合,このデータをほかのインタセプタメソッドがあとで取得できます。
-
-
CORBA::Object_ptr target,
const IOP::ServiceContextList& service_contexts,
CORBA::MarshalInBuffer& payload,
CORBA::Environment_ptr env,
VISClosure& closure);
リクエストが正常に,または例外を発生させて完了したあと,このメソッドが呼び出されます。このメソッドはServantLocatorの起動後に呼び出されます。チェーン内のインタセプタで例外が発生すると,そのインタセプタはexception_occurred()を呼び出し,チェーン内の残りのインタセプタはpostinvoke()ではなくexception_occurred()を呼び出します。
-
target
サーバへのバインドを試みたクライアントオブジェクト
-
service_contexts
ORBが割り当てたサービスを識別します。このサービスはOMGに規定されているものです。
-
payload
マーシャリング済みバッファ
-
env
発生した例外についての情報を格納します。
-
closure
あるインタセプタメソッドが保存したデータを格納する場合があります。その場合,このデータをほかのインタセプタメソッドがあとで取得できます。
-
-
virtual void exception_occurred(
CORBA::Object_ptr target,
CORBA::Environment_ptr env,
VISClosure& closure);
このメソッドは,呼び出し前に例外が発生した場合にORBが呼び出します。呼び出し後に発生した例外はすべて,postinvokeメソッドのEnvironmentパラメタに収集されます。
-
target
サーバへのバインドを試みたクライアントオブジェクト
-
env
発生した例外についての情報を格納します。
-
closure
あるインタセプタメソッドが保存したデータを格納する場合があります。その場合,このデータをほかのインタセプタメソッドがあとで取得できます。
-