org.apache.axis2.transport
Interface RequestResponseTransport

All Known Implementing Classes:
AxisServlet.ServletRequestResponseTransport

public interface RequestResponseTransport

This interface represents a control object for a Request/Response transport. The normal flow of Axis2 is rooted at the transport -- this does not allow for an acknowledgement to be transmitted before processing has completed, nor does it allow for processing to be paused and resumed on a separate thread without having a response be sent back. This interface enables both of those scenarios by allowing the transport to expose controls to the rest of the engine via a callback.


Nested Class Summary
static class RequestResponseTransport.RequestResponseTransportStatus
          Used to give the current status of the RequestResponseTransport object.
 
Field Summary
static java.lang.String HOLD_RESPONSE
          If this property is set to true in a message transport will call the awaitResponse method of the RequestResponseTransport instead of returning.
static java.lang.String TRANSPORT_CONTROL
           
 
Method Summary
 void acknowledgeMessage(MessageContext msgContext)
          Notify the transport that a message should be acknowledged at this time.
 void awaitResponse()
          Pause execution and wait for a response message to be ready.
 RequestResponseTransport.RequestResponseTransportStatus getStatus()
          This gives the current status of an RequestResponseTransport object.
 void signalFaultReady(AxisFault fault)
          This will tell the transport to end a current wait by raising the given fault.
 void signalResponseReady()
          Signal that a response has be created and is ready for transmission.
 

Field Detail

TRANSPORT_CONTROL

public static final java.lang.String TRANSPORT_CONTROL
See Also:
Constant Field Values

HOLD_RESPONSE

public static final java.lang.String HOLD_RESPONSE
If this property is set to true in a message transport will call the awaitResponse method of the RequestResponseTransport instead of returning. The value should be a Boolean object.

See Also:
Constant Field Values
Method Detail

acknowledgeMessage

public void acknowledgeMessage(MessageContext msgContext)
                        throws AxisFault
Notify the transport that a message should be acknowledged at this time.

Parameters:
msgContext -
Throws:
AxisFault

awaitResponse

public void awaitResponse()
                   throws java.lang.InterruptedException,
                          AxisFault
Pause execution and wait for a response message to be ready. This will typically be called by the transport after a message has been paused and will cause the transport to block until a response message is ready to be returned. This is required to enable RM for in-out MEPs over a request/response transport; without it the message would be paused and the transport would simply ack the request.

Throws:
java.lang.InterruptedException
AxisFault

signalResponseReady

public void signalResponseReady()
Signal that a response has be created and is ready for transmission. This should release anyone who is blocked on a awaitResponse().


signalFaultReady

public void signalFaultReady(AxisFault fault)
This will tell the transport to end a current wait by raising the given fault.

Parameters:
fault - The fault to be raised.

getStatus

public RequestResponseTransport.RequestResponseTransportStatus getStatus()
This gives the current status of an RequestResponseTransport object.

Returns:


Copyright © 2004-2007 Apache Software Foundation. All Rights Reserved.