You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2009/04/29 17:22:30 UTC

svn commit: r769797 - in /activemq/activemq-cpp/trunk/activemq-cpp/src: main/activemq/transport/ main/activemq/transport/failover/ main/activemq/transport/mock/ main/activemq/wireformat/ main/activemq/wireformat/openwire/ main/activemq/wireformat/stomp...

Author: tabish
Date: Wed Apr 29 15:22:28 2009
New Revision: 769797

URL: http://svn.apache.org/viewvc?rev=769797&view=rev
Log:
Some improvements and fixes to the Stomp WireFormat code.  Connection's work, subscribes are not right yet, don't receive any messages from the broker.

Modified:
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/Transport.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/TransportFilter.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/mock/MockTransport.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/WireFormat.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.cpp
    activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/correlator/ResponseCorrelatorTest.cpp

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.cpp Wed Apr 29 15:22:28 2009
@@ -127,7 +127,7 @@
 
         synchronized( outputStream ){
             // Write the command to the output stream.
-            this->wireFormat->marshal( command, this->outputStream );
+            this->wireFormat->marshal( command, this, this->outputStream );
             this->outputStream->flush();
         }
     }
@@ -220,7 +220,7 @@
         while( !closed ){
 
             // Read the next command from the input stream.
-            Pointer<Command> command( wireFormat->unmarshal( this->inputStream ) );
+            Pointer<Command> command( wireFormat->unmarshal( this, this->inputStream ) );
 
             // Notify the listener.
             fire( command );

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/IOTransport.h Wed Apr 29 15:22:28 2009
@@ -160,7 +160,7 @@
         }
 
         /**
-         * Sets the observer of asynchronous events from this transport.
+         * Sets the observer of asynchronous exceptions from this transport.
          * @param listener the listener of transport events.
          */
         virtual void setTransportListener( TransportListener* listener ){
@@ -168,6 +168,14 @@
         }
 
         /**
+         * Gets the observer of asynchronous exceptions from this transport.
+         * @return The listener of transport events.
+         */
+        virtual TransportListener* getTransportListener() const {
+            return this->listener;
+        }
+
+        /**
          * Sets the input stream for in-coming commands.
          * @param is The input stream.
          */

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/Transport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/Transport.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/Transport.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/Transport.h Wed Apr 29 15:22:28 2009
@@ -113,6 +113,12 @@
         virtual void setTransportListener( TransportListener* listener ) = 0;
 
         /**
+         * Gets the observer of asynchronous events from this transport.
+         * @return the listener of transport events.
+         */
+        virtual TransportListener* getTransportListener() const = 0;
+
+        /**
          * Narrows down a Chain of Transports to a specific Transport to allow a
          * higher level transport to skip intermediate Transports in certain
          * circumstances.

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/TransportFilter.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/TransportFilter.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/TransportFilter.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/TransportFilter.h Wed Apr 29 15:22:28 2009
@@ -157,13 +157,21 @@
 
         /**
          * Sets the observer of asynchronous exceptions from this transport.
-         * @param listener the listener of transport exceptions.
+         * @param listener the listener of transport events.
          */
         virtual void setTransportListener( TransportListener* listener ){
             this->listener = listener;
         }
 
         /**
+         * Gets the observer of asynchronous exceptions from this transport.
+         * @return The listener of transport events.
+         */
+        virtual TransportListener* getTransportListener() const {
+            return this->listener;
+        }
+
+        /**
          * Sets the WireFormat instance to use.
          * @param WireFormat the object used to encode / decode commands.
          */

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.cpp Wed Apr 29 15:22:28 2009
@@ -153,6 +153,13 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
+TransportListener* FailoverTransport::getTransportListener() const {
+    synchronized( &listenerMutex ) {
+        return this->transportListener;
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////
 std::string FailoverTransport::getRemoteAddress() const {
     synchronized( &reconnectMutex ) {
         if( connectedTransport != NULL ) {

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/failover/FailoverTransport.h Wed Apr 29 15:22:28 2009
@@ -204,6 +204,12 @@
         virtual void setTransportListener( TransportListener* listener );
 
         /**
+         * Gets the observer of asynchronous exceptions from this transport.
+         * @return The listener of transport events.
+         */
+        virtual TransportListener* getTransportListener() const;
+
+        /**
          * Is this Transport fault tolerant, meaning that it will reconnect to
          * a broker on disconnect.
          *

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/mock/MockTransport.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/mock/MockTransport.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/mock/MockTransport.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/transport/mock/MockTransport.h Wed Apr 29 15:22:28 2009
@@ -126,11 +126,23 @@
          */
         virtual void setWireFormat( const Pointer<wireformat::WireFormat>& wireFormat AMQCPP_UNUSED ) {}
 
-        virtual void setTransportListener( TransportListener* listener ) {
+        /**
+         * Sets the observer of asynchronous exceptions from this transport.
+         * @param listener the listener of transport events.
+         */
+        virtual void setTransportListener( TransportListener* listener ){
             this->listener = listener;
         }
 
         /**
+         * Gets the observer of asynchronous exceptions from this transport.
+         * @return The listener of transport events.
+         */
+        virtual TransportListener* getTransportListener() const {
+            return this->listener;
+        }
+
+        /**
          * Fires a Command back through this transport to its registered
          * CommandListener if there is one.
          * @param command - Command to send to the Listener.

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/WireFormat.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/WireFormat.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/WireFormat.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/WireFormat.h Wed Apr 29 15:22:28 2009
@@ -48,22 +48,30 @@
         virtual ~WireFormat() {}
 
         /**
-         * Stream based marshaling
+         * Stream based marshaling of a Command, this method blocks until the entire
+         * Command has been written out to the output stream.
+         *
          * @param command - The Command to Marshal
          * @param out - the output stream to write the command to.
          * @throws IOException
          */
         virtual void marshal( const Pointer<commands::Command>& command,
+                              const activemq::transport::Transport* transport,
                               decaf::io::DataOutputStream* out )
             throw ( decaf::io::IOException ) = 0;
 
         /**
-         * Packet based un-marshaling
+         * Stream based unmarshaling, blocks on reads on the input stream until a complete
+         * command has been read and unmarshaled into the correct form.  Returns a Pointer
+         * to the newly unmarshaled Command.
+         *
+         * @param transport - Pointer to the transport that is making this request.
          * @param in - the input stream to read the command from.
          * @returns the newly marshaled Command, caller owns the pointer
          * @throws IOException
          */
-        virtual Pointer<commands::Command> unmarshal( decaf::io::DataInputStream* in )
+        virtual Pointer<commands::Command> unmarshal( const activemq::transport::Transport* transport,
+                                                      decaf::io::DataInputStream* in )
             throw ( decaf::io::IOException ) = 0;
 
         /**
@@ -87,7 +95,9 @@
 
         /**
          * If the Transport Provides a Negotiator this method will create and return
-         * a news instance of the Negotiator.
+         * a new instance of the Negotiator.
+         *
+         * @param transport - the Transport to Wrap the Negotiator around.
          * @returns new instance of a WireFormatNegotiator as a Pointer<Transport>.
          * @throws UnsupportedOperationException if the WireFormat doesn't have a Negotiator.
          */

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.cpp Wed Apr 29 15:22:28 2009
@@ -159,6 +159,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 void OpenWireFormat::marshal( const Pointer<commands::Command>& command,
+                              const activemq::transport::Transport* transport,
                               decaf::io::DataOutputStream* dataOut )
     throw ( decaf::io::IOException ) {
 
@@ -234,7 +235,8 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-Pointer<commands::Command> OpenWireFormat::unmarshal( decaf::io::DataInputStream* dis )
+Pointer<commands::Command> OpenWireFormat::unmarshal( const activemq::transport::Transport* transport AMQCPP_UNUSED,
+                                                      decaf::io::DataInputStream* dis )
     throw ( decaf::io::IOException ) {
 
     try {

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/openwire/OpenWireFormat.h Wed Apr 29 15:22:28 2009
@@ -109,22 +109,30 @@
         void addMarshaller( marshal::DataStreamMarshaller* marshaller );
 
         /**
-         * Stream based marshaling
+         * Stream based marshaling of a Command, this method blocks until the entire
+         * Command has been written out to the output stream.
+         *
          * @param command - The Command to Marshal
          * @param out - the output stream to write the command to.
          * @throws IOException
          */
         virtual void marshal( const Pointer<commands::Command>& command,
-                              decaf::io::DataOutputStream* dataOut )
+                              const activemq::transport::Transport* transport,
+                              decaf::io::DataOutputStream* out )
             throw ( decaf::io::IOException );
 
         /**
-         * Stream based un-marshaling
-         * @param dis - the input stream to read the command from.
+         * Stream based un-marshaling, blocks on reads on the input stream until a complete
+         * command has been read and unmarshaled into the correct form.  Returns a Pointer
+         * to the newly unmarshaled Command.
+         *
+         * @param transport - Pointer to the transport that is making this request.
+         * @param in - the input stream to read the command from.
          * @returns the newly marshaled Command, caller owns the pointer
          * @throws IOException
          */
-        virtual Pointer<commands::Command> unmarshal( decaf::io::DataInputStream* dis )
+        virtual Pointer<commands::Command> unmarshal( const activemq::transport::Transport* transport,
+                                                      decaf::io::DataInputStream* in )
             throw ( decaf::io::IOException );
 
         /**

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.cpp Wed Apr 29 15:22:28 2009
@@ -19,6 +19,7 @@
 
 #include <activemq/wireformat/stomp/StompFrame.h>
 #include <activemq/wireformat/stomp/StompCommandConstants.h>
+#include <activemq/commands/Response.h>
 #include <decaf/lang/Character.h>
 #include <decaf/lang/Integer.h>
 #include <decaf/io/IOException.h>
@@ -26,6 +27,7 @@
 
 using namespace std;
 using namespace activemq;
+using namespace activemq::commands;
 using namespace activemq::wireformat;
 using namespace activemq::wireformat::stomp;
 using namespace decaf;
@@ -42,7 +44,9 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void StompWireFormat::marshal( const Pointer<Command>& command, decaf::io::DataOutputStream* out )
+void StompWireFormat::marshal( const Pointer<Command>& command,
+                               const activemq::transport::Transport* transport,
+                               decaf::io::DataOutputStream* out )
     throw ( decaf::io::IOException ) {
 
     try{
@@ -56,9 +60,20 @@
 
         Pointer<StompFrame> frame = marshaler.marshal( command );
 
-        // Some commands just don't translate to Stomp Commands, we ignore them
-        // and hope that bad things don't happen.
+        // Some commands just don't translate to Stomp Commands, unless they require
+        // a response we can just ignore them.
         if( frame == NULL ) {
+
+            if( command->isResponseRequired() ) {
+                Pointer<Response> response( new Response() );
+                response->setCorrelationId( command->getCommandId() );
+
+                transport::TransportListener* listener = transport->getTransportListener();
+                if( listener != NULL ) {
+                    listener->onCommand( response );
+                }
+            }
+
             return;
         }
 
@@ -105,7 +120,8 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-Pointer<Command> StompWireFormat::unmarshal( decaf::io::DataInputStream* in )
+Pointer<Command> StompWireFormat::unmarshal( const activemq::transport::Transport* transport,
+                                             decaf::io::DataInputStream* in )
     throw ( decaf::io::IOException ) {
 
     Pointer<StompFrame> frame;

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.h?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/StompWireFormat.h Wed Apr 29 15:22:28 2009
@@ -51,21 +51,30 @@
         virtual ~StompWireFormat();
 
         /**
-         * Stream based marshaling
+         * Stream based marshaling of a Command, this method blocks until the entire
+         * Command has been written out to the output stream.
+         *
          * @param command - The Command to Marshal
          * @param out - the output stream to write the command to.
          * @throws IOException
          */
-        virtual void marshal( const Pointer<Command>& command, decaf::io::DataOutputStream* out )
+        virtual void marshal( const Pointer<commands::Command>& command,
+                              const activemq::transport::Transport* transport,
+                              decaf::io::DataOutputStream* out )
             throw ( decaf::io::IOException );
 
         /**
-         * Packet based un-marshaling
+         * Stream based un-marshaling, blocks on reads on the input stream until a complete
+         * command has been read and unmarshaled into the correct form.  Returns a Pointer
+         * to the newly unmarshaled Command.
+         *
+         * @param transport - Pointer to the transport that is making this request.
          * @param in - the input stream to read the command from.
          * @returns the newly marshaled Command, caller owns the pointer
          * @throws IOException
          */
-        virtual Pointer<Command> unmarshal( decaf::io::DataInputStream* in )
+        virtual Pointer<commands::Command> unmarshal( const activemq::transport::Transport* transport,
+                                                      decaf::io::DataInputStream* in )
             throw ( decaf::io::IOException );
 
         /**

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.cpp Wed Apr 29 15:22:28 2009
@@ -106,14 +106,6 @@
             return this->marshalConsumerInfo( command );
         } else if( command->isRemoveSubscriptionInfo() ) {
             return this->marshalRemoveSubscriptionInfo( command );
-        } else if( command->isResponseRequired() ) {
-
-            // Send a fake Unsub command and ask for a receipt.
-            Pointer<StompFrame> frame( new StompFrame() );
-            frame->setCommand( StompCommandConstants::UNSUBSCRIBE );
-            frame->setProperty( StompCommandConstants::HEADER_ID, "-1" );
-            frame->setProperty( StompCommandConstants::HEADER_RECEIPT_REQUIRED,
-                                Integer::toString( command->getCommandId() ) );
         }
 
         // Ignoring this command.
@@ -325,10 +317,16 @@
     frame->setProperty( StompCommandConstants::HEADER_ID,
                         helper.convertConsumerId( info->getConsumerId() ) );
 
-    frame->setProperty( StompCommandConstants::HEADER_SUBSCRIPTIONNAME,
-                        info->getSubscriptionName() );
-    frame->setProperty( StompCommandConstants::HEADER_SELECTOR,
-                        info->getSelector() );
+    if( info->getSubscriptionName() != "" ) {
+        frame->setProperty( StompCommandConstants::HEADER_SUBSCRIPTIONNAME,
+                            info->getSubscriptionName() );
+    }
+
+    if( info->getSelector() != "" ) {
+        frame->setProperty( StompCommandConstants::HEADER_SELECTOR,
+                            info->getSelector() );
+    }
+
     frame->setProperty( StompCommandConstants::HEADER_ACK, "client" );
 
     if( info->isNoLocal() ) {

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/IOTransportTest.cpp Wed Apr 29 15:22:28 2009
@@ -82,7 +82,8 @@
         return Pointer<wireformat::WireFormatNegotiator>();
     }
 
-    virtual Pointer<commands::Command> unmarshal( decaf::io::DataInputStream* inputStream )
+    virtual Pointer<commands::Command> unmarshal( const activemq::transport::Transport* transport AMQCPP_UNUSED,
+                                                  decaf::io::DataInputStream* inputStream )
         throw ( IOException ){
 
         try{
@@ -134,6 +135,7 @@
     }
 
     virtual void marshal( const Pointer<commands::Command>& command,
+                          const activemq::transport::Transport* transport AMQCPP_UNUSED,
                           decaf::io::DataOutputStream* outputStream )
         throw (IOException)
     {

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/correlator/ResponseCorrelatorTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/correlator/ResponseCorrelatorTest.cpp?rev=769797&r1=769796&r2=769797&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/correlator/ResponseCorrelatorTest.cpp (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/transport/correlator/ResponseCorrelatorTest.cpp Wed Apr 29 15:22:28 2009
@@ -112,6 +112,10 @@
             this->listener = listener;
         }
 
+        virtual TransportListener* getTransportListener() const {
+            return this->listener;
+        }
+
         virtual void start() throw( cms::CMSException ){
             close();