org.ws4d.java.communication
Interface ResponseCallback

All Known Implementing Classes:
DefaultResponseCallback, DefaultServiceReferenceCallback, FaultAwareResponseCallback

public interface ResponseCallback

This interface is used to receive answers to request messages sent via CommunicationManager#send(Message, ProtocolDomain, ResponseCallback) . Incoming response messages are delivered to an appropriate handle method, e.g. handle(Message, ProbeMatchesMessage, ProtocolData) for responses to a sent ProbeMessage.


Method Summary
 OperationDescription getOperation()
           
 XAddressInfo getTargetAddress()
           
 void handle(Message request, FaultMessage fault, ProtocolData protocolData)
          Receives a FaultMessage in response to a previously sent request message.
 void handle(Message request, GetMetadataResponseMessage getMetadataResponse, ProtocolData protocolData)
          Receives a GetMetadataResponseMessage.
 void handle(Message request, GetResponseMessage getResponse, ProtocolData protocolData)
          Receives a GetResponseMessage.
 void handle(Message request, GetStatusResponseMessage getStatusResponse, ProtocolData protocolData)
          Receives a GetStatusResponseMessage.
 void handle(Message request, InvokeMessage invokeResponse, ProtocolData protocolData)
          Receives a InvokeMessage as a response to another request InvokeMessage that has previously been sent by passing this ResponseCallback instance as the third argument to the send method.
 void handle(Message request, ProbeMatchesMessage probeMatches, ProtocolData protocolData)
          Receives a ProbeMatchesMessage in response to a previously sent ProbeMessage.
 void handle(Message request, RenewResponseMessage renewResponse, ProtocolData protocolData)
          Receives a RenewResponseMessage.
 void handle(Message request, ResolveMatchesMessage resolveMatches, ProtocolData protocolData)
          Receives a ResolveMatchesMessage in response to a previously sent ResolveMessage.
 void handle(Message request, SubscribeResponseMessage subscribeResponse, ProtocolData protocolData)
          Receives a SubscribeResponseMessage.
 void handle(Message request, UnsubscribeResponseMessage unsubscribeResponse, ProtocolData protocolData)
          Receives an UnsubscribeResponseMessage.
 void handleMalformedResponseException(Message request, java.lang.Exception exception, ProtocolData protocolData)
          Called when an exception occurs while receiving, decoding or processing the response message to a previously sent request.
 void handleTimeout(Message request)
          Called when an attempt to receive responses to a previously sent request message passed to CommunicationManager#send(Message, ProtocolDomain, ResponseCallback) timeouted.
 void handleTransmissionException(Message request, java.lang.Exception exception, ProtocolData protocolData)
          Called when an exception arises while sending the request message.
 void setTargetAddress(XAddressInfo targetXAddressInfo)
           
 

Method Detail

handle

void handle(Message request,
            ProbeMatchesMessage probeMatches,
            ProtocolData protocolData)
Receives a ProbeMatchesMessage in response to a previously sent ProbeMessage. This receiving ResponseCallback instance is the one passed as third argument to the send method.
Note that it is possible (depending on the underlying technology implemented by the concrete CommunicationManager in use) to receive none, exactly one or multiple ProbeMatchesMessages in response to a single sent ProbeMessage. This method would therefore accordingly either not get called at all, or get called once or multiple times..

If no responses to the sent resolve message are received within a protocol-specific time period, the method handleTimeout(Message) will be called.

Parameters:
request - the original request message
probeMatches - a message containing a response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message; this is especially useful when sending probe request messages over multiple different technologies like DPWS, Bluetooth, ZigBee, etc. (which can be done by specifying respective ProtocolDomains); the supplied protocolData enables in such cases the requester to distinguish which technology the search results were obtained over

handle

void handle(Message request,
            ResolveMatchesMessage resolveMatches,
            ProtocolData protocolData)
Receives a ResolveMatchesMessage in response to a previously sent ResolveMessage. This receiving ResponseCallback instance is the one passed as third argument to the send method.
Note that it is possible (depending on the underlying technology implemented by the concrete CommunicationManager in use) to receive none or exactly one ResolveMatchesMessage in response to a single sent ResolveMessage. This method would thus accordingly either not get called at all, or get called once.

If no responses to the sent resolve message are received within a protocol-specific time period, method handleTimeout(Message) will be called.

Parameters:
request - the original request message
resolveMatches - a message containing a response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message; this is especially useful when sending resolve request messages over multiple different technologies like DPWS, Bluetooth, ZigBee, etc. (which can be done by specifying respective ProtocolDomains); the supplied protocolData enables in such cases the requester to distinguish which technology the result was obtained over

handle

void handle(Message request,
            GetResponseMessage getResponse,
            ProtocolData protocolData)
Receives a GetResponseMessage. The corresponding GetMessage has previously been sent by passing this ResponseCallback instance as the third argument to the send method.

Each GetMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
getResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            GetMetadataResponseMessage getMetadataResponse,
            ProtocolData protocolData)
Receives a GetMetadataResponseMessage. The corresponding GetMetadataMessage has previously been sent by passing this ResponseCallback instance as the third argument to the send method.

Each GetMetadataMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
getMetadataResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            SubscribeResponseMessage subscribeResponse,
            ProtocolData protocolData)
Receives a SubscribeResponseMessage. The corresponding SubscribeMessage has been sent previously by passing this ResponseCallback instance as the third argument to the send method.

Each SubscribeMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
subscribeResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            GetStatusResponseMessage getStatusResponse,
            ProtocolData protocolData)
Receives a GetStatusResponseMessage. The corresponding GetStatusMessage has been sent previously by passing this ResponseCallback instance as the third argument to the send method.

Each GetStatusMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
getStatusResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            RenewResponseMessage renewResponse,
            ProtocolData protocolData)
Receives a RenewResponseMessage. The corresponding RenewMessage has been sent previously by passing this ResponseCallback instance as the third argument to the send method.

Each RenewMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
renewResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            UnsubscribeResponseMessage unsubscribeResponse,
            ProtocolData protocolData)
Receives an UnsubscribeResponseMessage. The corresponding UnsubscribeMessage has been sent previously by passing this ResponseCallback instance as the third argument to the send method.

Each UnsubscribeMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

Parameters:
request - the original request message
unsubscribeResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            InvokeMessage invokeResponse,
            ProtocolData protocolData)
Receives a InvokeMessage as a response to another request InvokeMessage that has previously been sent by passing this ResponseCallback instance as the third argument to the send method.

Each request InvokeMessage may result in a call to either this method (in case of successful two-way communication), or to methods:

In case of successful one-way communication, no method of this interface is called.

Parameters:
request - the original request message
invokeResponse - a message containing the response to the previously sent request
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handle

void handle(Message request,
            FaultMessage fault,
            ProtocolData protocolData)
Receives a FaultMessage in response to a previously sent request message.

A fault is raised on the responding side while processing the request message and then sent back to the requester (aka. this side). It is explicitly NOT created on this side while processing the received response (see method handleMalformedResponseException(Message, Exception, ProtocolData) for the latter case).

Parameters:
request - the original request message
fault - the fault generated by the responding side
protocolData - protocol (aka. technology) specific addressing information attached to the received message

handleTimeout

void handleTimeout(Message request)
Called when an attempt to receive responses to a previously sent request message passed to CommunicationManager#send(Message, ProtocolDomain, ResponseCallback) timeouted. This can only happen when using an unreliable connectionless transport layer for message transmission, such as UDP. Note that any other error related to sending the original request message is notified by the callback method handleTransmissionException(Message, Exception, ProtocolData). The original (request) message that was meant to be sent is passed as argument request.

Parameters:
request - the message meant to be sent, which resulted in a timeout

handleTransmissionException

void handleTransmissionException(Message request,
                                 java.lang.Exception exception,
                                 ProtocolData protocolData)
Called when an exception arises while sending the request message. This could be e.g. due to network reachability reasons, an IO problem within the transport connection, an invalid message construct, etc.

Parameters:
request - the request message which was meant to be sent when the exception occurred
exception - the exception cause while sending the request message
protocolData - protocol (aka. technology) specific addressing information related to the transmission exception

handleMalformedResponseException

void handleMalformedResponseException(Message request,
                                      java.lang.Exception exception,
                                      ProtocolData protocolData)
Called when an exception occurs while receiving, decoding or processing the response message to a previously sent request. The exception is passed to argument exception

Parameters:
request - the original request message
exception - the exception caused during processing the response
protocolData - protocol (aka. technology) specific addressing information related to the malformed response

getOperation

OperationDescription getOperation()

setTargetAddress

void setTargetAddress(XAddressInfo targetXAddressInfo)

getTargetAddress

XAddressInfo getTargetAddress()