package org.omg.PortableInterceptor;
/**
* org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java .
* Generated by the IDL-to-Java compiler (portable), version "3.2"
* from /var/lib/jenkins/jobs/openjdk/jobs/openjdk10/workspace/jdk-updates_jdk10u/src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl
* Sunday, February 14, 2021 at 5:20:32 PM Coordinated Universal Time
*/
Server-side request interceptor.
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.
To write a server-side Interceptor, implement the
ServerRequestInterceptor interface.
See Also: - ServerRequestInfo
/**
* Server-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 server-side Interceptor, implement the
* ServerRequestInterceptor interface.
*
* @see ServerRequestInfo
*/
public interface ServerRequestInterceptorOperations extends org.omg.PortableInterceptor.InterceptorOperations
{
Allows the interceptor to process service context information.
At this interception point, Interceptors must get their service
context information from the incoming request transfer it to
PortableInterceptor.Current
's slots.
This interception point is called before the servant manager is called.
Operation parameters are not yet available at this point. This
interception point may or may not execute in the same thread as
the target invocation.
This interception point may throw a system exception. If it does,
no other Interceptors' receive_request_service_contexts
operations are called. Those Interceptors on the Flow Stack are
popped and their send_exception
interception points are
called.
This interception point may also throw a ForwardRequest
exception. If an Interceptor throws this exception, no other
Interceptors' receive_request_service_contexts
operations
are called. Those Interceptors on the Flow Stack are popped and
their send_other
interception points are called.
Compliant Interceptors shall properly follow
completion_status
semantics if they throw a system
exception from this interception point. The
completion_status
shall be COMPLETED_NO.
Params: - ri – Information about the current request being intercepted.
Throws: - ForwardRequest – If thrown, indicates to the ORB that a
retry of the request should occur with the new object given in
the exception.
/**
* Allows the interceptor to process service context information.
* <p>
* At this interception point, Interceptors must get their service
* context information from the incoming request transfer it to
* <code>PortableInterceptor.Current</code>'s slots.
* <p>
* This interception point is called before the servant manager is called.
* Operation parameters are not yet available at this point. This
* interception point may or may not execute in the same thread as
* the target invocation.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>receive_request_service_contexts</code>
* operations are called. Those Interceptors on the Flow Stack are
* popped and their <code>send_exception</code> interception points are
* called.
* <p>
* This interception point may also throw a <code>ForwardRequest</code>
* exception. If an Interceptor throws this exception, no other
* Interceptors' <code>receive_request_service_contexts</code> operations
* are called. Those Interceptors on the Flow Stack are popped and
* their <code>send_other</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
* <code>completion_status</code> shall be COMPLETED_NO.
*
* @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 receive_request_service_contexts (org.omg.PortableInterceptor.ServerRequestInfo ri) throws org.omg.PortableInterceptor.ForwardRequest;
Allows an Interceptor to query request information after all the
information, including operation parameters, are available. This
interception point shall execute in the same thread as the target
invocation.
In the DSI model, since the parameters are first available when
the user code calls arguments
, receive_request
is called from within arguments
. It is possible that
arguments
is not called in the DSI model. The target
may call set_exception
before calling
arguments
. The ORB shall guarantee that
receive_request
is called once, either through
arguments
or through set_exception
. If it
is called through set_exception
, requesting the
arguments will result in NO_RESOURCES
being thrown with
a standard minor code of 1.
This interception point may throw a system exception. If it does, no
other Interceptors' receive_request
operations are
called. Those Interceptors on the Flow Stack are popped and their
send_exception
interception points are called.
This interception point may also throw a ForwardRequest
exception. If an Interceptor throws this exception, no other
Interceptors' receive_request
operations are called.
Those Interceptors on the Flow Stack are popped and their
send_other
interception points are called.
Compliant Interceptors shall properly follow
completion_status
semantics if they throw a system
exception from this interception point. The
completion_status
shall be COMPLETED_NO
.
Params: - ri – Information about the current request being intercepted.
Throws: - ForwardRequest – If thrown, indicates to the ORB that a
retry of the request should occur with the new object given in
the exception.
/**
* Allows an Interceptor to query request information after all the
* information, including operation parameters, are available. This
* interception point shall execute in the same thread as the target
* invocation.
* <p>
* In the DSI model, since the parameters are first available when
* the user code calls <code>arguments</code>, <code>receive_request</code>
* is called from within <code>arguments</code>. It is possible that
* <code>arguments</code> is not called in the DSI model. The target
* may call <code>set_exception</code> before calling
* <code>arguments</code>. The ORB shall guarantee that
* <code>receive_request</code> is called once, either through
* <code>arguments</code> or through <code>set_exception</code>. If it
* is called through <code>set_exception</code>, requesting the
* arguments will result in <code>NO_RESOURCES</code> being thrown with
* a standard minor code of 1.
* <p>
* This interception point may throw a system exception. If it does, no
* other Interceptors' <code>receive_request</code> operations are
* called. Those Interceptors on the Flow Stack are popped and their
* <code>send_exception</code> interception points are called.
* <p>
* This interception point may also throw a <code>ForwardRequest</code>
* exception. If an Interceptor throws this exception, no other
* Interceptors' <code>receive_request</code> operations are called.
* Those Interceptors on the Flow Stack are popped and their
* <code>send_other</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
* <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 receive_request (org.omg.PortableInterceptor.ServerRequestInfo ri) throws org.omg.PortableInterceptor.ForwardRequest;
Allows an Interceptor to query reply information and modify the
reply service context after the target operation has been invoked
and before the reply is returned to the client. This interception
point shall execute in the same thread as the target invocation.
This interception point may throw a system exception. If it does,
no other Interceptors' send_reply
operations are called.
The remaining Interceptors in the Flow Stack shall have their
send_exception
interception point called.
Compliant Interceptors shall properly follow
completion_status
semantics if they throw a
system exception from this interception point. The
completion_status
shall be COMPLETED_YES
.
Params: - ri – Information about the current request being intercepted.
/**
* Allows an Interceptor to query reply information and modify the
* reply service context after the target operation has been invoked
* and before the reply is returned to the client. This interception
* point shall execute in the same thread as the target invocation.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>send_reply</code> operations are called.
* The remaining Interceptors in the Flow Stack shall have their
* <code>send_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>.
*
* @param ri Information about the current request being intercepted.
*/
void send_reply (org.omg.PortableInterceptor.ServerRequestInfo ri);
Allows an Interceptor to query the exception information and modify
the reply service context before the exception is thrown to the client.
When an exception occurs, this interception point is called. This
interception point shall execute in the same thread as the target
invocation.
This interception point may throw a system exception. This has the
effect of changing the exception which successive Interceptors
popped from the Flow Stack receive on their calls to
send_exception
. The exception thrown to the client will
be the last exception thrown by an Interceptor, or the original
exception if no Interceptor changes the exception.
This interception point may also throw a ForwardRequest
exception. If an Interceptor throws this exception, no other
Interceptors' send_exception
operations are called. The
remaining Interceptors in the Flow Stack shall have their
send_other
interception points called.
If the completion_status
of the exception is not
COMPLETED_NO
, then it is inappropriate for this
interception point to throw a ForwardRequest
exception.
The request's at-most-once semantics would be lost.
Compliant Interceptors shall properly follow
completion_status
semantics if they throw a system
exception from this interception point. If the original exception
is a system exception, the completion_status
of the new
exception shall be the same as on the original. If the original
exception is a user exception, then the completion_status
of the new exception shall be COMPLETED_YES
.
Params: - ri – Information about the current request being intercepted.
Throws: - ForwardRequest – If thrown, indicates to the ORB that a
retry of the request should occur with the new object given in
the exception.
/**
* Allows an Interceptor to query the exception information and modify
* the reply service context before the exception is thrown to the client.
* When an exception occurs, this interception point is called. This
* interception point shall execute in the same thread as the target
* invocation.
* <p>
* This interception point may throw a system exception. This has the
* effect of changing the exception which successive Interceptors
* popped from the Flow Stack receive on their calls to
* <code>send_exception</code>. The exception thrown to the client will
* be the last exception thrown by an Interceptor, or the original
* exception if no Interceptor changes the exception.
* <p>
* This interception point may also throw a <code>ForwardRequest</code>
* exception. If an Interceptor throws this exception, no other
* Interceptors' <code>send_exception</code> operations are called. The
* remaining Interceptors in the Flow Stack shall have their
* <code>send_other</code> interception points called.
* <p>
* If the <code>completion_status</code> of the exception is not
* <code>COMPLETED_NO</code>, then it is inappropriate for this
* interception point to throw a <code>ForwardRequest</code> exception.
* The request's at-most-once semantics would be lost.
* <p>
* Compliant Interceptors shall properly follow
* <code>completion_status</code> semantics if they throw a system
* exception from this interception point. If the original exception
* is a system exception, the <code>completion_status</code> of the new
* exception shall be the same as on the original. If the original
* exception is a user exception, then the <code>completion_status</code>
* of the new exception shall be <code>COMPLETED_YES</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_exception (org.omg.PortableInterceptor.ServerRequestInfo ri) throws org.omg.PortableInterceptor.ForwardRequest;
Allows an Interceptor to query the information available when a
request results in something other than a normal reply or an
exception. For example, a request could result in a retry
(e.g., a GIOP Reply with a LOCATION_FORWARD
status was
received). This interception point shall execute in the same thread
as the target invocation.
This interception point may throw a system exception. If it does,
no other Interceptors' send_other
operations are called.
The remaining Interceptors in the Flow Stack shall have their
send_exception
interception points called.
This interception point may also throw a ForwardRequest
exception. If an Interceptor throws this exception, successive
Interceptors' send_other
operations are called with
the new information provided by the ForwardRequest
exception.
Compliant Interceptors shall properly follow
completion_status
semantics if they throw a system
exception from this interception point. The
completion_status
shall be COMPLETED_NO
.
Params: - ri – Information about the current request being intercepted.
Throws: - ForwardRequest – If thrown, indicates to the ORB that a
retry of the request should occur with the new object given in
the exception.
/**
* Allows an Interceptor to query the information available when a
* request results in something other than a normal reply or an
* exception. For example, a request could result in a retry
* (e.g., a GIOP Reply with a <code>LOCATION_FORWARD</code> status was
* received). This interception point shall execute in the same thread
* as the target invocation.
* <p>
* This interception point may throw a system exception. If it does,
* no other Interceptors' <code>send_other</code> operations are called.
* The remaining Interceptors in the Flow Stack shall have their
* <code>send_exception</code> interception points called.
* <p>
* This interception point may also throw a <code>ForwardRequest</code>
* exception. If an Interceptor throws this exception, successive
* Interceptors' <code>send_other</code> operations are called with
* the new information provided by the <code>ForwardRequest</code>
* exception.
* <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_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_other (org.omg.PortableInterceptor.ServerRequestInfo ri) throws org.omg.PortableInterceptor.ForwardRequest;
} // interface ServerRequestInterceptorOperations