package org.omg.PortableInterceptor;
/**
* org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java .
* Generated by the IDL-to-Java compiler (portable), version "3.2"
* from ../../../../src/share/classes/org/omg/PortableInterceptor/Interceptors.idl
* Monday, September 24, 2007 9:53:01 PM GMT-08:00
*/
/**
* Client-side request interceptor.
* <p>
* A request Interceptor is designed to intercept the flow of a
* request/reply sequence through the ORB at specific points so that
* services can query the request information and manipulate the service
* contexts which are propagated between clients and servers. The primary
* use of request Interceptors is to enable ORB services to transfer
* context information between clients and servers. There are two types
* of request Interceptors: client-side and server-side.
* <p>
* To write a client-side Interceptor, implement the
* <code>ClientRequestInterceptor</code> interface.
*
* @see ClientRequestInfo
*/
public interface ClientRequestInterceptorOperations extends org.omg.PortableInterceptor.InterceptorOperations
{
/**
* Allows an Interceptor to query request information and modify the
* service context before the request is sent to the server.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>send_request</code> operations are called.
* Those Interceptors on the Flow Stack are popped and their
* <code>receive_exception</code> interception points are called. This
* interception point may also throw a <code>ForwardRequest</code>
* exception. If an Interceptor throws this exception, no other
* Interceptors' <code>send_request</code> operations are
* called. Those Interceptors on the Flow Stack are popped and their
* <code>receive_other</code> interception points are called.
* <p>
* Compliant Interceptors shall properly follow completion_status
* semantics if they throw a system exception from this interception
* point. The <code>completion_status</code> shall be
* <code>COMPLETED_NO</code>.
*
* @param ri Information about the current request being intercepted.
* @exception ForwardRequest If thrown, indicates to the ORB that a
* retry of the request should occur with the new object given in
* the exception.
*/
void send_request (org.omg.PortableInterceptor.ClientRequestInfo ri) throws org.omg.PortableInterceptor.ForwardRequest;
/**
* Allows an Interceptor to query information during a Time-Independent
* Invocation (TII) polling get reply sequence.
* <p>
* With TII, an application may poll for a response to a request sent
* previously by the polling client or some other client. This poll is
* reported to Interceptors through the <code>send_poll</code>
* interception point and the response is returned through the
* <code>receive_reply</code> or <code>receive_exception</code>
* interception points. If the response is not available before the
* poll time-out expires, the system exception <code>TIMEOUT</code> is
* thrown and <code>receive_exception</code> is called with this
* exception.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>send_poll</code> operations are
* called. Those Interceptors on the Flow Stack are popped and their
* <code>receive_exception</code> interception points are called.
* <p>
* Compliant Interceptors shall properly follow
* <code>completion_status</code> semantics if they throw a system
* exception from this interception point. The completion_status shall be
* <code>COMPLETED_NO</code>.
*
* @param ri Information about the current request being intercepted.
* @exception TIMEOUT thrown if the response is not available before
* the poll time-out expires
*/
void send_poll (org.omg.PortableInterceptor.ClientRequestInfo ri);
/**
* Allows an Interceptor to query the information on a reply after it
* is returned from the server and before control is returned to the
* client.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>receive_reply</code> operations are
* called. The remaining Interceptors in the Flow Stack shall have
* their <code>receive_exception</code> interception point called.
* <p>
* Compliant Interceptors shall properly follow
* <code>completion_status</code> semantics if they throw a system
* exception from this interception point. The
* <code>completion_status</code> shall be <code>COMPLETED_YES</code>.
=1= |