summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2009-06-16 18:41:58 +0000
committerTed Ross <tross@apache.org>2009-06-16 18:41:58 +0000
commitbf96051a1c81fd6a6384b5c249cc827f6cb1f38c (patch)
treef6c9c54cf9bf51d302e230a5154276e0d3d5ab86
parent8d4fa85054553e158cc1536506c6328031a7c643 (diff)
downloadqpid-python-bf96051a1c81fd6a6384b5c249cc827f6cb1f38c.tar.gz
Minor cleanup of the new management-failover example.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@785339 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/examples/qmf-console/cluster-qmon.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/qpid/cpp/examples/qmf-console/cluster-qmon.cpp b/qpid/cpp/examples/qmf-console/cluster-qmon.cpp
index 4ee2ce1edd..fe92f8a8ae 100644
--- a/qpid/cpp/examples/qmf-console/cluster-qmon.cpp
+++ b/qpid/cpp/examples/qmf-console/cluster-qmon.cpp
@@ -43,6 +43,11 @@ using qpid::sys::Mutex;
//==============================================================
// Main program
//==============================================================
+
+//
+// The Main class extends ConsoleListener so it can receive broker connected/disconnected
+// notifications.
+//
class Main : public ConsoleListener {
bool stopping; // Used to tell the program to exit
Mutex lock; // Mutex to protect the broker-map
@@ -84,11 +89,12 @@ public:
// Connect to the brokers.
//
for (int idx = 1; idx < argc; idx++) {
- Mutex::ScopedLock l(lock);
qpid::client::ConnectionSettings connSettings;
connSettings.host = "localhost";
connSettings.port = atoi(argv[idx]);
Broker* broker = sm.addBroker(connSettings);
+
+ Mutex::ScopedLock l(lock);
brokerMap[broker] = false; // initially assume broker is disconnected
}
@@ -100,11 +106,14 @@ public:
// Find an operational broker
//
Broker* operationalBroker = 0;
- for (map<Broker*, bool>::iterator iter = brokerMap.begin();
- iter != brokerMap.end(); iter++) {
- if (iter->second) {
- operationalBroker = iter->first;
- break;
+ {
+ Mutex::ScopedLock l(lock);
+ for (map<Broker*, bool>::iterator iter = brokerMap.begin();
+ iter != brokerMap.end(); iter++) {
+ if (iter->second) {
+ operationalBroker = iter->first;
+ break;
+ }
}
}