Author: tabish
Date: Mon Jan 26 23:01:39 2009
New Revision: 737918

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

More work on the Failover bits.

Modified:
    
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.cpp
    
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.h
    
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransportFactory.cpp

Modified: 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.cpp
URL: 
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.cpp?rev=737918&r1=737917&r2=737918&view=diff
==============================================================================
--- 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.cpp
 (original)
+++ 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.cpp
 Mon Jan 26 23:01:39 2009
@@ -22,10 +22,9 @@
 using namespace activemq::transport::failover;
 
 
////////////////////////////////////////////////////////////////////////////////
-FailoverTransport::FailoverTransport( const decaf::net::URI& location,
-                                      wireformat::WireFormat* wireformat,
-                                      const decaf::util::Properties& 
properties ) {
+FailoverTransport::FailoverTransport() {
 
+    this->timeout = -1;
     this->initialReconnectDelay = 10;
     this->maxReconnectDelay = 1000 * 30;
     this->backOffMultiplier = 2;

Modified: 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.h
URL: 
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.h?rev=737918&r1=737917&r2=737918&view=diff
==============================================================================
--- 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.h
 (original)
+++ 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransport.h
 Mon Jan 26 23:01:39 2009
@@ -41,6 +41,7 @@
 
         decaf::util::Set<decaf::net::URI> uris;
 
+        long long timeout;
         long long initialReconnectDelay;
         long long maxReconnectDelay;
         long long backOffMultiplier;
@@ -61,9 +62,7 @@
 
     public:
 
-        FailoverTransport( const decaf::net::URI& location,
-                           wireformat::WireFormat* wireformat,
-                           const decaf::util::Properties& properties );
+        FailoverTransport();
 
         virtual ~FailoverTransport();
 
@@ -215,6 +214,14 @@
 
     public: // FailoverTransport Property Getters / Setters
 
+        long long getTimeout() const {
+            return this->timeout;
+        }
+
+        void setTimeout( long long value ) {
+            this->timeout = value;
+        }
+
         long long getInitialReconnectDelay() const {
             return this->initialReconnectDelay;
         }

Modified: 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransportFactory.cpp
URL: 
http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransportFactory.cpp?rev=737918&r1=737917&r2=737918&view=diff
==============================================================================
--- 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransportFactory.cpp
 (original)
+++ 
activemq/activemq-cpp/trunk/src/main/activemq/transport/failover/FailoverTransportFactory.cpp
 Mon Jan 26 23:01:39 2009
@@ -19,6 +19,11 @@
 
 #include <activemq/transport/failover/FailoverTransport.h>
 
+#include <decaf/lang/Boolean.h>
+#include <decaf/lang/Integer.h>
+#include <decaf/lang/Long.h>
+#include <memory>
+
 using namespace activemq;
 using namespace activemq::transport;
 using namespace activemq::transport::failover;
@@ -35,7 +40,30 @@
 
     try {
 
-        return new FailoverTransport( location, wireFormat, properties );
+        std::auto_ptr<FailoverTransport> transport( new FailoverTransport() );
+
+        transport->setInitialReconnectDelay(
+            Long::parseLong( properties.getProperty( "initialReconnectDelay", 
"10" ) ) );
+        transport->setMaxReconnectDelay(
+            Long::parseLong( properties.getProperty( "maxReconnectDelay", 
"30000" ) ) );
+        transport->setUseExponentialBackOff(
+            Boolean::parseBoolean( properties.getProperty( 
"useExponentialBackOff", "true" ) ) );
+        transport->setMaxReconnectAttempts(
+            Integer::parseInt( properties.getProperty( "maxReconnectAttempts", 
"0" ) ) );
+        transport->setRandomize(
+            Boolean::parseBoolean( properties.getProperty( "randomize", "true" 
) ) );
+        transport->setBackup(
+            Boolean::parseBoolean( properties.getProperty( "backup", "false" ) 
) );
+        transport->setBackupPoolSize(
+            Integer::parseInt( properties.getProperty( "backupPoolSize", "1" ) 
) );
+        transport->setTimeout(
+            Long::parseLong( properties.getProperty( "timeout", "-1" ) ) );
+        transport->setTrackMessages(
+            Boolean::parseBoolean( properties.getProperty( "trackMessages", 
"false" ) ) );
+        transport->setMaxCacheSize(
+            Integer::parseInt( properties.getProperty( "maxCacheSize", 
"131072" ) ) );
+
+        return transport.release();
     }
     AMQ_CATCH_RETHROW( ActiveMQException )
     AMQ_CATCH_EXCEPTION_CONVERT( Exception, ActiveMQException )


Reply via email to