activemq-cpp-3.6.0
activemq::transport::correlator::ResponseCorrelator Class Reference

This type of transport filter is responsible for correlating asynchronous responses with requests. More...

#include <src/main/activemq/transport/correlator/ResponseCorrelator.h>

Inheritance diagram for activemq::transport::correlator::ResponseCorrelator:

Public Member Functions

 ResponseCorrelator (Pointer< Transport > next)
 Creates a new ResponseCorrelator transport filter that wraps the given transport.
virtual ~ResponseCorrelator ()
virtual void oneway (const Pointer< Command > command)
 Sends a one-way command.
virtual Pointer< FutureResponseasyncRequest (const Pointer< Command > command, const Pointer< ResponseCallback > responseCallback)
 Sends a commands asynchronously, returning a FutureResponse object that the caller can use to check to find out the response from the broker.
virtual Pointer< Responserequest (const Pointer< Command > command)
 Sends the given command to the broker and then waits for the response.
virtual Pointer< Responserequest (const Pointer< Command > command, unsigned int timeout)
 Sends the given command to the broker and then waits for the response.
virtual void onCommand (const Pointer< Command > command)
 This is called in the context of the nested transport's reading thread.
virtual void onException (const decaf::lang::Exception &ex)
 Event handler for an exception from a command transport.
- Public Member Functions inherited from activemq::transport::TransportFilter
 TransportFilter (const Pointer< Transport > next)
 Constructor.
virtual ~TransportFilter ()
void start ()
 Starts the Transport, the send methods of a Transport will throw an exception if used before the Transport is started.
void stop ()
 Stops the Transport.
void close ()
 Closes this object and deallocates the appropriate resources.
virtual void transportInterrupted ()
 The transport has suffered an interruption from which it hopes to recover.
virtual void transportResumed ()
 The transport has resumed after an interruption.
virtual void setTransportListener (TransportListener *listener)
 Sets the observer of asynchronous events from this transport.
virtual TransportListenergetTransportListener () const
 Gets the observer of asynchronous events from this transport.
virtual Pointer
< wireformat::WireFormat
getWireFormat () const
 Gets the WireFormat instance that is in use by this transport.
virtual void setWireFormat (const Pointer< wireformat::WireFormat > wireFormat)
 Sets the WireFormat instance to use.
virtual Transportnarrow (const std::type_info &typeId)
 Narrows down a Chain of Transports to a specific Transport to allow a higher level transport to skip intermediate Transports in certain circumstances.
virtual bool isFaultTolerant () const
 Is this Transport fault tolerant, meaning that it will reconnect to a broker on disconnect.
virtual bool isConnected () const
 Is the Transport Connected to its Broker.
virtual bool isReconnectSupported () const
virtual bool isUpdateURIsSupported () const
virtual bool isClosed () const
 Has the Transport been shutdown and no longer usable.
virtual std::string getRemoteAddress () const
virtual void reconnect (const decaf::net::URI &uri)
 reconnect to another location
virtual void updateURIs (bool rebalance, const decaf::util::List< decaf::net::URI > &uris)
 Updates the set of URIs the Transport can connect to.
- Public Member Functions inherited from activemq::transport::Transport
virtual ~Transport ()
- Public Member Functions inherited from decaf::io::Closeable
virtual ~Closeable ()
- Public Member Functions inherited from activemq::transport::TransportListener
virtual ~TransportListener ()

Protected Member Functions

virtual void doClose ()
 Subclasses can override this method to do their own close work.
- Protected Member Functions inherited from activemq::transport::TransportFilter
void checkClosed () const
 Throws an IOException if this filter chain has already been closed.
virtual void beforeNextIsStarted ()
 Subclasses can override this method to do their own startup work.
virtual void afterNextIsStarted ()
 Subclasses can override this method to do their own post startup work.
virtual void beforeNextIsStopped ()
 Subclasses can override this method to do their own pre-stop work.
virtual void afterNextIsStopped ()
 Subclasses can override this method to do their own stop work.

Additional Inherited Members

- Protected Attributes inherited from activemq::transport::TransportFilter
Pointer< Transportnext
 The transport that this filter wraps around.
TransportListenerlistener
 Listener of this transport.

Detailed Description

This type of transport filter is responsible for correlating asynchronous responses with requests.

Non-response messages are simply sent directly to the CommandListener. It owns the transport that it

Constructor & Destructor Documentation

activemq::transport::correlator::ResponseCorrelator::ResponseCorrelator ( Pointer< Transport next)

Creates a new ResponseCorrelator transport filter that wraps the given transport.

Parameters
nextthe next transport in the chain
Exceptions
NullPointerExceptionif next if NULL.
virtual activemq::transport::correlator::ResponseCorrelator::~ResponseCorrelator ( )
virtual

Member Function Documentation

virtual Pointer<FutureResponse> activemq::transport::correlator::ResponseCorrelator::asyncRequest ( const Pointer< Command command,
const Pointer< ResponseCallback responseCallback 
)
virtual

Sends a commands asynchronously, returning a FutureResponse object that the caller can use to check to find out the response from the broker.

Parameters
commandThe Command object that is to sent out.
responseCallbackA callback object that will be notified once a response to the command is received.
Returns
A FutureResponse instance that can be queried for the Response to the Command.
Exceptions
IOExceptionif an exception occurs during the read of the command.
UnsupportedOperationExceptionif this method is not implemented by this transport.

Reimplemented from activemq::transport::TransportFilter.

virtual void activemq::transport::correlator::ResponseCorrelator::doClose ( )
protectedvirtual

Subclasses can override this method to do their own close work.

This method is always called after all the next transports have been closed to prevent this transport for destroying resources needed by the lower level transports.

Reimplemented from activemq::transport::TransportFilter.

virtual void activemq::transport::correlator::ResponseCorrelator::onCommand ( const Pointer< Command command)
virtual

This is called in the context of the nested transport's reading thread.

In the case of a response object, updates the request map and notifies those waiting on the response. Non-response messages are just delegated to the command listener.

Parameters
commandThe received from the nested transport.

Reimplemented from activemq::transport::TransportFilter.

virtual void activemq::transport::correlator::ResponseCorrelator::oneway ( const Pointer< Command command)
virtual

Sends a one-way command.

Does not wait for any response from the broker.

Parameters
commandThe command to be sent.
Exceptions
IOExceptionif an exception occurs during writing of the command.
UnsupportedOperationExceptionif this method is not implemented by this transport.

Reimplemented from activemq::transport::TransportFilter.

virtual void activemq::transport::correlator::ResponseCorrelator::onException ( const decaf::lang::Exception ex)
virtual

Event handler for an exception from a command transport.

Parameters
sourceThe source of the exception.
exThe exception that was caught.

Reimplemented from activemq::transport::TransportFilter.

virtual Pointer<Response> activemq::transport::correlator::ResponseCorrelator::request ( const Pointer< Command command)
virtual

Sends the given command to the broker and then waits for the response.

Parameters
commandthe command to be sent.
Returns
the response from the broker.
Exceptions
IOExceptionif an exception occurs during the read of the command.
UnsupportedOperationExceptionif this method is not implemented by this transport.

Reimplemented from activemq::transport::TransportFilter.

virtual Pointer<Response> activemq::transport::correlator::ResponseCorrelator::request ( const Pointer< Command command,
unsigned int  timeout 
)
virtual

Sends the given command to the broker and then waits for the response.

Parameters
commandThe command to be sent.
timeoutThe time to wait for this response.
Returns
the response from the broker.
Exceptions
IOExceptionif an exception occurs during the read of the command.
UnsupportedOperationExceptionif this method is not implemented by this transport.

Reimplemented from activemq::transport::TransportFilter.


The documentation for this class was generated from the following file: