summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-10-10 23:32:02 +0000
committerAlan Conway <aconway@apache.org>2008-10-10 23:32:02 +0000
commitfe6b7aaac2df901aea90b233fdb2bb51b058c037 (patch)
tree9683fd8d2c892c8bff486614929dd1efd1488882
parentdb0c3ecf5d011c30288efd48b6b76077b58bcbed (diff)
downloadqpid-python-fe6b7aaac2df901aea90b233fdb2bb51b058c037.tar.gz
src/client/FailoverConnection.cpp: re-register callback after failures
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@703604 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/examples/failover/direct_producer.cpp3
-rw-r--r--qpid/cpp/src/qpid/client/FailoverConnection.cpp10
2 files changed, 5 insertions, 8 deletions
diff --git a/qpid/cpp/examples/failover/direct_producer.cpp b/qpid/cpp/examples/failover/direct_producer.cpp
index 4f91c9c4d4..ef2231a7f0 100644
--- a/qpid/cpp/examples/failover/direct_producer.cpp
+++ b/qpid/cpp/examples/failover/direct_producer.cpp
@@ -39,6 +39,7 @@ main ( int argc, char ** argv)
const char* host = argc>1 ? argv[1] : "127.0.0.1";
int port = argc>2 ? atoi(argv[2]) : 5672;
int count = argc>3 ? atoi(argv[3]) : 30;
+ int delayMs = argc>4 ? atoi(argv[4]) : 1000;
try {
FailoverConnection connection;
@@ -70,7 +71,7 @@ main ( int argc, char ** argv)
0,
message
);
- sleep ( 1 );
+ usleep ( 1000*delayMs );
++ sent;
}
message.setData ( "That's all, folks!" );
diff --git a/qpid/cpp/src/qpid/client/FailoverConnection.cpp b/qpid/cpp/src/qpid/client/FailoverConnection.cpp
index c5d775bf82..3e982747ff 100644
--- a/qpid/cpp/src/qpid/client/FailoverConnection.cpp
+++ b/qpid/cpp/src/qpid/client/FailoverConnection.cpp
@@ -126,7 +126,7 @@ FailoverConnection::failover ( )
{
std::vector<Url> knownBrokers = connection.getKnownBrokers();
if (knownBrokers.empty())
- throw Exception(QPID_MSG("FailoverConnection::failover " << name << " no known brokers."));
+ throw Exception(QPID_MSG("FailoverConnection::failover " << name << " no known brokers."));
Connection newConnection;
for (std::vector<Url>::iterator i = knownBrokers.begin(); i != knownBrokers.end(); ++i) {
@@ -171,12 +171,8 @@ FailoverConnection::failover ( )
}
connection = newConnection;
-
- // FIXME aconway 2008-10-09: use sys/Time.h functions.
- if ( failoverCompleteTime )
- {
- gettimeofday ( failoverCompleteTime, 0 );
- }
+ connection.registerFailureCallback
+ ( boost::bind(&FailoverConnection::failover, this));
}