次の2種類のクライアントインタセプタとそれに対応するマネージャがあります。
クライアントインタセプタの詳細については,「19. ポータブルインタセプタの使用」を参照してください。
BindInterceptorオブジェクトは,バインド前後にクライアント側で呼び出されるグローバルインタセプタです。
package com.inprise.vbroker.InterceptorExt;
public interface BindInterceptor {
public IORValue bind(IORValue ior,
org.omg.CORBA.Object target,
boolean rebind,
Closure closure);
public IORValue bind_failed(IORValue ior,
org.omg.CORBA.Object target,
Closure closure);
public void bind_succeeded(IORValue ior,
org.omg.CORBA.Object target,
int Index,
InterceptorManagerControl control,
Closure closure);
public void exception_occurred(IORValue ior,
org.omg.CORBA.Object target,
org.omg.CORBA.Environment env,
Closure closure);
}
ClientRequestInterceptorオブジェクトは,BindInterceptorオブジェクトのbind_succeeded呼び出し中に登録できます。またこれは,コネクション期間中アクティブのままです。このメソッドのうちの二つは,クライアントオブジェクトの起動前に呼び出されます。一つ(preinvoke_premarshal)は,パラメタがマーシャルされる前に,もう一つ(preinvoke_postmarshal)は,パラメタがマーシャルされたあとに呼び出されます。三つ目のメソッド(postinvoke)は,リクエストの完了後に呼び出されます。
package com.inprise.vbroker.InterceptorExt;
public interface ClientRequestInterceptor {
public void preinvoke_premarshal(org.omg.CORBA.Object target,
String operation,
ServiceContextListHolder service_contexts_holder,
Closure closure);
public void preinvoke_postmarshal(org.omg.CORBA.Object target,
OutputStream payload,
Closure closure);
public void postinvoke(org.omg.CORBA.Object target,
ServiceContext [ ] service_contexts,
InputStream payload,
org.omg.CORBA.Environment env,
Closure closure);
public void exception_occurred(org.omg.CORBA.Object target,
org.omg.CORBA.Environment env,
Closure closure);
}