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/27 15:12:37 UTC

svn commit: r768967 - in /activemq/activemq-cpp/trunk: activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/ activemq-cpp/ activemq-cpp/src/main/ activemq-cpp/src/main/activemq/commands/ activemq-cpp/src/main/activem...

Author: tabish
Date: Mon Apr 27 13:12:37 2009
New Revision: 768967

URL: http://svn.apache.org/viewvc?rev=768967&view=rev
Log:
Add more code to support Stomp WireFormat.  

Modified:
    activemq/activemq-cpp/trunk/activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandCodeGeneratorsFactory.java
    activemq/activemq-cpp/trunk/activemq-cpp/pom.xml
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/BaseCommand.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/Command.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ConnectionInfo.h
    activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/TransactionInfo.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/main/activemq/wireformat/stomp/marshal/Marshaler.h

Modified: activemq/activemq-cpp/trunk/activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandCodeGeneratorsFactory.java
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandCodeGeneratorsFactory.java?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandCodeGeneratorsFactory.java (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/commands/CommandCodeGeneratorsFactory.java Mon Apr 27 13:12:37 2009
@@ -48,6 +48,8 @@
         commandsWithShortcuts.add( "ProducerAck" );
         commandsWithShortcuts.add( "MessageDispatchNotification" );
         commandsWithShortcuts.add( "ShutdownInfo" );
+        commandsWithShortcuts.add( "TransactionInfo" );
+        commandsWithShortcuts.add( "ConnectionInfo" );
     }
 
     /**

Modified: activemq/activemq-cpp/trunk/activemq-cpp/pom.xml
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/pom.xml?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/pom.xml (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/pom.xml Mon Apr 27 13:12:37 2009
@@ -165,7 +165,7 @@
                 <excludes>
                   <exclude>**/decaf/security/**\*.cpp</exclude>
                   <exclude>**/decaf/security_provider/**\*.cpp</exclude>
-                  <exclude>**/activemq/wireformat/stomp/**\*.cpp</exclude>
+<!--                   <exclude>**/activemq/wireformat/stomp/**\*.cpp</exclude> -->
                 </excludes>
               </sources>
               <headers>
@@ -176,7 +176,7 @@
                 <excludes>
                   <exclude>**/decaf/security/**\*.h</exclude>
                   <exclude>**/decaf/security_provider/**\*.h</exclude>
-                  <exclude>**/activemq/wireformat/stomp/**\*.h</exclude>
+<!--                  <exclude>**/activemq/wireformat/stomp/**\*.h</exclude> -->
                 </excludes>
               </headers>
             </configuration>

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/Makefile.am Mon Apr 27 13:12:37 2009
@@ -304,6 +304,11 @@
     activemq/wireformat/openwire/utils/BooleanStream.cpp \
     activemq/wireformat/openwire/utils/HexTable.cpp \
     activemq/wireformat/openwire/OpenWireFormatNegotiator.cpp \
+    activemq/wireformat/stomp/StompResponseBuilder.cpp \
+    activemq/wireformat/stomp/StompCommandConstants.cpp \
+    activemq/wireformat/stomp/marshal/Marshaler.cpp \
+    activemq/wireformat/stomp/StompWireFormatFactory.cpp \
+    activemq/wireformat/stomp/StompWireFormat.cpp \
     activemq/wireformat/WireFormatRegistry.cpp \
     activemq/cmsutil/PooledSession.cpp \
     activemq/cmsutil/ResourceLifecycleManager.cpp \
@@ -832,6 +837,12 @@
     activemq/wireformat/openwire/utils/MessagePropertyInterceptor.h \
     activemq/wireformat/WireFormat.h \
     activemq/wireformat/WireFormatNegotiator.h \
+    activemq/wireformat/stomp/StompFrame.h \
+    activemq/wireformat/stomp/StompCommandConstants.h \
+    activemq/wireformat/stomp/StompResponseBuilder.h \
+    activemq/wireformat/stomp/StompWireFormatFactory.h \
+    activemq/wireformat/stomp/marshal/Marshaler.h \
+    activemq/wireformat/stomp/StompWireFormat.h \
     activemq/wireformat/WireFormatFactory.h \
     activemq/wireformat/MarshalAware.h \
     activemq/wireformat/WireFormatRegistry.h \

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/BaseCommand.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/BaseCommand.h?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/BaseCommand.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/BaseCommand.h Mon Apr 27 13:12:37 2009
@@ -112,6 +112,9 @@
             return BaseDataStructure::equals( value );
         }
 
+        virtual bool isConnectionInfo() const {
+            return false;
+        }
         virtual bool isBrokerInfo() const  {
             return false;
         }
@@ -142,6 +145,9 @@
         virtual bool isShutdownInfo() const  {
             return false;
         }
+        virtual bool isTransactionInfo() const {
+            return false;
+        }
         virtual bool isWireFormatInfo() const  {
             return false;
         }

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/Command.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/Command.h?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/Command.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/Command.h Mon Apr 27 13:12:37 2009
@@ -80,6 +80,7 @@
          * Command is of a certain type.  These are the most commonly used Commands
          * and we save several casts and some ugly code by just adding these here.
          */
+        virtual bool isConnectionInfo() const = 0;
         virtual bool isBrokerInfo() const = 0;
         virtual bool isKeepAliveInfo() const = 0;
         virtual bool isMessage() const = 0;
@@ -90,6 +91,7 @@
         virtual bool isResponse() const = 0;
         virtual bool isRemoveInfo() const = 0;
         virtual bool isShutdownInfo() const = 0;
+        virtual bool isTransactionInfo() const = 0;
         virtual bool isWireFormatInfo() const = 0;
 
     };

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ConnectionInfo.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ConnectionInfo.h?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ConnectionInfo.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/ConnectionInfo.h Mon Apr 27 13:12:37 2009
@@ -138,6 +138,13 @@
         virtual void setClientMaster( bool clientMaster );
 
         /**
+         * @return an answer of true to the isConnectionInfo() query.
+         */
+        virtual bool isConnectionInfo() const {
+            return true;
+        }
+
+        /**
          * Allows a Visitor to visit this command and return a response to the
          * command based on the command type being visited.  The command will call
          * the proper processXXX method in the visitor.

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/TransactionInfo.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/TransactionInfo.h?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/TransactionInfo.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/commands/TransactionInfo.h Mon Apr 27 13:12:37 2009
@@ -115,6 +115,13 @@
         virtual void setType( unsigned char type );
 
         /**
+         * @return an answer of true to the isTransactionInfo() query.
+         */
+        virtual bool isTransactionInfo() const {
+            return true;
+        }
+
+        /**
          * Allows a Visitor to visit this command and return a response to the
          * command based on the command type being visited.  The command will call
          * the proper processXXX method in the visitor.

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=768967&r1=768966&r2=768967&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 Mon Apr 27 13:12:37 2009
@@ -112,13 +112,13 @@
         frame.reset( new StompFrame() );
 
         // Read the command header.
-        readStompCommandHeader( *( frame.get() ), in );
+        readStompCommandHeader( frame, in );
 
         // Read the headers.
-        readStompHeaders( *( frame.get() ), in );
+        readStompHeaders( frame, in );
 
         // Read the body.
-        readStompBody( *( frame.get() ), in );
+        readStompBody( frame, in );
 
         // Return the Command.
         return marshaler.marshal( frame );
@@ -138,7 +138,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void StompWireFormat::readStompCommandHeader( StompFrame& frame, decaf::io::DataInputStream* in )
+void StompWireFormat::readStompCommandHeader( Pointer<StompFrame>& frame, decaf::io::DataInputStream* in )
    throw ( decaf::io::IOException ) {
 
     try{
@@ -154,7 +154,7 @@
             for( size_t ix = 0; ix < buffer.size()-1; ++ix ) {
 
                 // Find the first non whitespace character
-                if( !Character::isWhitespace(buffer[ix]) ){
+                if( !Character::isWhitespace( buffer[ix] ) ){
                     offset = (long long)ix;
                     break;
                 }
@@ -162,7 +162,7 @@
 
             if( offset >= 0 ) {
                 // Set the command in the frame - copy the memory.
-                frame.setCommand( reinterpret_cast<char*>(&buffer[(size_t)offset]) );
+                frame->setCommand( reinterpret_cast<char*>( &buffer[(size_t)offset] ) );
                 break;
             }
         }
@@ -173,7 +173,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void StompWireFormat::readStompHeaders( StompFrame& frame, decaf::io::DataInputStream* in )
+void StompWireFormat::readStompHeaders( Pointer<StompFrame>& frame, decaf::io::DataInputStream* in )
     throw ( decaf::io::IOException ) {
 
     try{
@@ -211,11 +211,11 @@
                         // Null-terminate the key.
                         buffer[ix] = '\0';
 
-                        const char* key = reinterpret_cast<char*>(&buffer[0]);
-                        const char* value = reinterpret_cast<char*>(&buffer[ix+1]);
+                        const char* key = reinterpret_cast<char*>( &buffer[0] );
+                        const char* value = reinterpret_cast<char*>( &buffer[ix+1] );
 
                         // Assign the header key/value pair.
-                        frame.getProperties().setProperty(key, value);
+                        frame->getProperties().setProperty( key, value );
 
                         // Break out of the for loop.
                         break;
@@ -250,11 +250,9 @@
 
             // If we reached the line terminator, return the total number
             // of characters read.
-            if( buffer[count-1] == '\n' )
-            {
+            if( buffer[count-1] == '\n' ) {
                 // Overwrite the line feed with a null character.
                 buffer[count-1] = '\0';
-
                 return count;
             }
         }
@@ -271,7 +269,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-void StompWireFormat::readStompBody( StompFrame& frame, decaf::io::DataInputStream* in )
+void StompWireFormat::readStompBody( Pointer<StompFrame>& frame, decaf::io::DataInputStream* in )
    throw ( decaf::io::IOException ) {
 
     try{
@@ -281,12 +279,12 @@
 
         unsigned int content_length = 0;
 
-        if(frame.getProperties().hasProperty(
+        if( frame->getProperties().hasProperty(
             StompCommandConstants::toString(
                 StompCommandConstants::HEADER_CONTENTLENGTH ) ) ) {
 
             string length =
-                frame.getProperties().getProperty(
+                frame->getProperties().getProperty(
                     StompCommandConstants::toString(
                         StompCommandConstants::HEADER_CONTENTLENGTH ) );
 
@@ -305,7 +303,7 @@
             // Resize doesn't realloc the vector smaller if content_length
             // is less than capacity of the buffer, it just move the end
             // iterator.  Reserve adds the benefit that the mem is set to
-            // zero.  Over time as larger messages come in thsi will cause
+            // zero.  Over time as larger messages come in this will cause
             // us to adapt to that size so that future messages that are
             // around that size won't alloc any new memory.
 
@@ -346,7 +344,7 @@
 
         if( content_length != 0 ) {
             // Set the body contents in the frame - copy the memory
-            frame.getBody() = buffer;
+            frame->getBody() = buffer;
         }
     }
     AMQ_CATCH_RETHROW( decaf::io::IOException )

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=768967&r1=768966&r2=768967&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 Mon Apr 27 13:12:37 2009
@@ -72,7 +72,7 @@
          * Set the Version
          * @param the version of the wire format
          */
-        virtual void setVersion( int version ) {}
+        virtual void setVersion( int version AMQCPP_UNUSED ) {}
 
         /**
          * Get the Version
@@ -108,7 +108,7 @@
          * @param reference to a Stomp Frame
          * @throws StompConnectorException
          */
-        void readStompCommandHeader( StompFrame& frame, decaf::io::DataInputStream* in )
+        void readStompCommandHeader( Pointer<StompFrame>& frame, decaf::io::DataInputStream* in )
             throw ( decaf::io::IOException );
 
         /**
@@ -116,7 +116,7 @@
          * @param Frame to place data into
          * @throws StompConnectorException
          */
-        void readStompHeaders( StompFrame& frame, decaf::io::DataInputStream* in )
+        void readStompHeaders( Pointer<StompFrame>& frame, decaf::io::DataInputStream* in )
             throw ( decaf::io::IOException );
 
         /**
@@ -124,13 +124,14 @@
          * @return number of bytes read, zero if there was a problem.
          * @throws StompConnectorException
          */
-        std::size_t readStompHeaderLine( decaf::io::DataInputStream* in ) throw ( decaf::io::IOException );
+        std::size_t readStompHeaderLine( decaf::io::DataInputStream* in )
+            throw ( decaf::io::IOException );
 
         /**
          * Reads the Stomp Body from the Wire and store it in the frame.
          * @param Stomp Frame to place data in
          */
-        void readStompBody( StompFrame& frame, decaf::io::DataInputStream* in )
+        void readStompBody( Pointer<StompFrame>& frame, 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=768967&r1=768966&r2=768967&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 Mon Apr 27 13:12:37 2009
@@ -28,6 +28,7 @@
 #include <activemq/commands/BrokerError.h>
 
 using namespace activemq;
+using namespace activemq::commands;
 using namespace activemq::exceptions;
 using namespace activemq::wireformat;
 using namespace activemq::wireformat::stomp;
@@ -46,34 +47,19 @@
         Pointer<Command> command;
 
         if( commandId == StompCommandConstants::CONNECTED ){
-//            command = new ConnectedCommand( frame );
-        }
-        else if( commandId == StompCommandConstants::ERROR_CMD ){
-//            command = new ErrorCommand( frame );
-        }
-        else if( commandId == StompCommandConstants::RECEIPT ){
-//            command = new ReceiptCommand( frame );
-        }
-        else if( commandId == StompCommandConstants::MESSAGE ){
-
-//            if( !frame->getProperties().hasProperty(
-//                    CommandConstants::toString(
-//                        CommandConstants::HEADER_CONTENTLENGTH ) ) ) {
-//                command = new TextMessageCommand( frame );
-//            } else {
-//                command = new BytesMessageCommand( frame );
-//            }
+            return this->unmarshalConnected( frame );
+        } else if( commandId == StompCommandConstants::ERROR_CMD ){
+            return this->unmarshalError( frame );
+        } else if( commandId == StompCommandConstants::RECEIPT ){
+            return this->unmarshalReceipt( frame );
+        } else if( commandId == StompCommandConstants::MESSAGE ){
+            return this->unmarshalMessage( frame );
         }
 
-        // We either got a command or a response, but if we got neither
-        // then complain, something went wrong.
-        if( command == NULL ) {
-            throw decaf::io::IOException(
-                __FILE__, __LINE__,
-                "Marshaler::marshal - No Command Created from frame");
-        }
-
-        return command;
+        // We didn't seem to know what it was we got, so throw an exception.
+        throw decaf::io::IOException(
+            __FILE__, __LINE__,
+            "Marshaler::marshal - No Command Created from frame");
     }
     AMQ_CATCH_RETHROW( decaf::io::IOException )
     AMQ_CATCH_EXCEPTION_CONVERT( ActiveMQException, decaf::io::IOException )
@@ -87,6 +73,17 @@
 
     try{
 
+        if( command->isMessage() ) {
+            return this->marshalMessage( command );
+        } else if( command->isRemoveInfo() ) {
+            return this->marshalRemoveInfo( command );
+        } else if( command->isShutdownInfo() ) {
+            return this->marshalShutdownInfo( command );
+        } else if( command->isMessageAck() ) {
+            return this->marshalAck( command );
+        }
+
+        // Ignoreing this command.
         return Pointer<StompFrame>();
     }
     AMQ_CATCH_RETHROW( decaf::io::IOException )
@@ -94,3 +91,76 @@
     AMQ_CATCH_EXCEPTION_CONVERT( Exception, decaf::io::IOException )
     AMQ_CATCHALL_THROW( decaf::io::IOException )
 }
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<Command> Marshaler::unmarshalMessage( const Pointer<StompFrame>& frame ) {
+
+//    if( !frame->getProperties().hasProperty(
+//            CommandConstants::toString(
+//                CommandConstants::HEADER_CONTENTLENGTH ) ) ) {
+//        command = new TextMessageCommand( frame );
+//    } else {
+//        command = new BytesMessageCommand( frame );
+//    }
+
+    return Pointer<Command>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<Command> Marshaler::unmarshalReceipt( const Pointer<StompFrame>& frame ){
+
+    return Pointer<Command>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<Command> Marshaler::unmarshalConnected( const Pointer<StompFrame>& frame ) {
+
+    return Pointer<Command>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<Command> Marshaler::unmarshalError( const Pointer<StompFrame>& frame ) {
+
+    Pointer<BrokerError> error( new BrokerError() );
+    error->setMessage(
+        frame->getProperties().getProperty(
+            StompCommandConstants::toString( StompCommandConstants::HEADER_MESSAGE ), "" ) );
+
+    return error;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalMessage( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalAck( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalConnect( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalTransactionInfo( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalShutdownInfo( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}
+
+////////////////////////////////////////////////////////////////////////////////
+Pointer<StompFrame> Marshaler::marshalRemoveInfo( const Pointer<Command>& command ) {
+
+    return Pointer<StompFrame>();
+}

Modified: activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.h?rev=768967&r1=768966&r2=768967&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.h (original)
+++ activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/wireformat/stomp/marshal/Marshaler.h Mon Apr 27 13:12:37 2009
@@ -59,6 +59,20 @@
         virtual Pointer<StompFrame> marshal( const Pointer<Command>& command )
             throw ( decaf::io::IOException );
 
+    private:
+
+        Pointer<Command> unmarshalMessage( const Pointer<StompFrame>& frame );
+        Pointer<Command> unmarshalReceipt( const Pointer<StompFrame>& frame );
+        Pointer<Command> unmarshalConnected( const Pointer<StompFrame>& frame );
+        Pointer<Command> unmarshalError( const Pointer<StompFrame>& frame );
+
+        Pointer<StompFrame> marshalMessage( const Pointer<Command>& command );
+        Pointer<StompFrame> marshalAck( const Pointer<Command>& command );
+        Pointer<StompFrame> marshalConnect( const Pointer<Command>& command );
+        Pointer<StompFrame> marshalTransactionInfo( const Pointer<Command>& command );
+        Pointer<StompFrame> marshalShutdownInfo( const Pointer<Command>& command );
+        Pointer<StompFrame> marshalRemoveInfo( const Pointer<Command>& command );
+
     };
 
 }}}}