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 2007/01/28 16:58:19 UTC

svn commit: r500817 - in /incubator/activemq/activemq-cpp/trunk/activemq-cpp/src: main/activemq/connector/openwire/commands/ main/activemq/util/ test/activemq/connector/openwire/commands/

Author: tabish
Date: Sun Jan 28 07:58:19 2007
New Revision: 500817

URL: http://svn.apache.org/viewvc?view=rev&rev=500817
Log:
http://issues.apache.org/activemq/browse/AMQCPP-30

Modified:
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/PrimitiveMap.cpp
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.cpp
    incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.h

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp?view=diff&rev=500817&r1=500816&r2=500817
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.cpp Sun Jan 28 07:58:19 2007
@@ -113,12 +113,12 @@
     std::string answer = "";
     if( destination != NULL && destination->isTemporary() ) {
         std::string name = destination->getPhysicalName();
-        size_t start = name.find_first_of( TEMP_PREFIX );
+        size_t start = name.find( TEMP_PREFIX );
         if( start != std::string::npos ) {
             start += TEMP_PREFIX.length();
-            size_t stop = name.find_last_of( TEMP_POSTFIX );
+            size_t stop = name.rfind( TEMP_POSTFIX );
             if( stop > start && stop < name.length() ) {
-                answer = name.substr( start, stop );
+                answer = name.substr( start, stop-start );
             }
         }
     }

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h?view=diff&rev=500817&r1=500816&r2=500817
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/connector/openwire/commands/ActiveMQDestination.h Sun Jan 28 07:58:19 2007
@@ -206,21 +206,15 @@
             this->orderedTarget = orderedTarget;
         }
 
-    public:
-    
-        /**
-         * Returns the Type of Destination that this object represents
-         * @returns int type qualifier.
-         */
-        virtual cms::Destination::DestinationType getDestinationType() const = 0;
-    
+    public:  // Statics
+        
         /**
          * Create a temporary name from the clientId
          *
          * @param clientId
          * @return
          */
-        static std::string CreateTemporaryName( 
+        static std::string createTemporaryName( 
             const std::string& clientId ) {
 
             return TEMP_PREFIX + clientId + TEMP_POSTFIX;
@@ -233,6 +227,14 @@
          * @return the clientId or null if not a temporary destination
          */
         static std::string getClientId( const ActiveMQDestination* destination );
+
+    public:
+    
+        /**
+         * Returns the Type of Destination that this object represents
+         * @returns int type qualifier.
+         */
+        virtual cms::Destination::DestinationType getDestinationType() const = 0;
 
         /**
          * Returns true if a temporary Destination

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/PrimitiveMap.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/PrimitiveMap.cpp?view=diff&rev=500817&r1=500816&r2=500817
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/PrimitiveMap.cpp (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/util/PrimitiveMap.cpp Sun Jan 28 07:58:19 2007
@@ -28,7 +28,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 PrimitiveMap::PrimitiveMap( const PrimitiveMap& src ) {
-    this->valueNodeMap = src.valueNodeMap;
+    this->copy( src );
 }
 
 ////////////////////////////////////////////////////////////////////////////////

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.cpp
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.cpp?view=diff&rev=500817&r1=500816&r2=500817
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.cpp (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.cpp Sun Jan 28 07:58:19 2007
@@ -19,6 +19,8 @@
 
 CPPUNIT_TEST_SUITE_REGISTRATION( activemq::connector::openwire::commands::ActiveMQDestinationTest );
 
+#include <activemq/util/Guid.h>
+
 using namespace std;
 using namespace activemq;
 using namespace activemq::util;
@@ -42,5 +44,37 @@
     CPPUNIT_ASSERT( dest.isExclusive() == true );
     CPPUNIT_ASSERT( dest.isAdvisory() == true );
     CPPUNIT_ASSERT( dest.isConsumerAdvisory() == false );
+    CPPUNIT_ASSERT( dest.isProducerAdvisory() == false );
+    CPPUNIT_ASSERT( dest.isConnectionAdvisory() == false );
+
+    MyDestination dest2;
+    dest2.copyDataStructure( &dest );
+
+    CPPUNIT_ASSERT( dest2.getPhysicalName().find( "test" ) != string::npos );
+    CPPUNIT_ASSERT( dest2.isAdvisory() == true );
+    CPPUNIT_ASSERT( dest2.isExclusive() == true );
+    CPPUNIT_ASSERT( dest2.isAdvisory() == true );
+    CPPUNIT_ASSERT( dest2.isConsumerAdvisory() == false );
+    CPPUNIT_ASSERT( dest2.isProducerAdvisory() == false );
+
+    MyDestination* dest3 = NULL;
+    dest3 = dynamic_cast<MyDestination*>( dest.cloneDataStructure() );
+
+    CPPUNIT_ASSERT( dest3 != NULL );
+    CPPUNIT_ASSERT( dest3->getPhysicalName().find( "test" ) != string::npos );
+    CPPUNIT_ASSERT( dest3->isAdvisory() == true );
+    CPPUNIT_ASSERT( dest3->isExclusive() == true );
+    CPPUNIT_ASSERT( dest3->isAdvisory() == true );
+    CPPUNIT_ASSERT( dest3->isConsumerAdvisory() == false );
+    CPPUNIT_ASSERT( dest3->isProducerAdvisory() == false );
+    
+    std::string clientId = Guid::createGUIDString();
+    std::string result = dest.createTemporaryName( clientId );
+    CPPUNIT_ASSERT( result.find( clientId ) != string::npos );
+    dest.setPhysicalName( result );
+    CPPUNIT_ASSERT( clientId != dest.getClientId( &dest ) );
+    MyTempDestination tmpDest;
+    tmpDest.setPhysicalName( result );
+    CPPUNIT_ASSERT( clientId == ActiveMQDestination::getClientId( &tmpDest ) );
 
 }

Modified: incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.h
URL: http://svn.apache.org/viewvc/incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.h?view=diff&rev=500817&r1=500816&r2=500817
==============================================================================
--- incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.h (original)
+++ incubator/activemq/activemq-cpp/trunk/activemq-cpp/src/test/activemq/connector/openwire/commands/ActiveMQDestinationTest2.h Sun Jan 28 07:58:19 2007
@@ -66,6 +66,19 @@
             }
         };
         
+        class MyTempDestination : public MyDestination {
+        public:
+
+            /**
+             * Returns the Type of Destination that this object represents
+             * @returns int type qualifier.
+             */
+            virtual cms::Destination::DestinationType getDestinationType() const {
+                return cms::Destination::TEMPORARY_TOPIC;
+            }
+
+        };
+
     public:
     
     	ActiveMQDestinationTest() {}