diff options
| author | Ted Ross <tross@apache.org> | 2010-06-03 20:23:30 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-06-03 20:23:30 +0000 |
| commit | 1407ed486f178e408e804c844d833ebdf62aa4e4 (patch) | |
| tree | 3676a4123c63cc4e35825a0197c1a668091e7da4 /cpp | |
| parent | a5bf1aec82703d272f5e63a1fd9da6219a1ea4aa (diff) | |
| download | qpid-python-1407ed486f178e408e804c844d833ebdf62aa4e4.tar.gz | |
QPID-2644 - Console examples sometimes fail due to not waiting for the broker connection to complete
Moved 'Broker::waitForStable' from private to public, used this function in the examples to
hold off until the broker is fully connected.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@951141 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/examples/qmf-console/console.cpp | 1 | ||||
| -rw-r--r-- | cpp/examples/qmf-console/ping.cpp | 1 | ||||
| -rw-r--r-- | cpp/include/qpid/console/Broker.h | 14 |
3 files changed, 9 insertions, 7 deletions
diff --git a/cpp/examples/qmf-console/console.cpp b/cpp/examples/qmf-console/console.cpp index 5700d5556f..b5375b673f 100644 --- a/cpp/examples/qmf-console/console.cpp +++ b/cpp/examples/qmf-console/console.cpp @@ -81,6 +81,7 @@ int main_int(int /*argc*/, char** /*argv*/) Broker* broker; broker = sm.addBroker(settings); + broker->waitForStable(); cout << "Package List:" << endl; vector<string> packages; diff --git a/cpp/examples/qmf-console/ping.cpp b/cpp/examples/qmf-console/ping.cpp index 405c15f1c4..fe537d48d2 100644 --- a/cpp/examples/qmf-console/ping.cpp +++ b/cpp/examples/qmf-console/ping.cpp @@ -55,6 +55,7 @@ int main_int(int /*argc*/, char** /*argv*/) // Add a broker connection to the session manager. // Broker* broker = sm.addBroker(connSettings); + broker->waitForStable(); uint32_t count = 5; // The number of echo requests we will send to the broker. Object::Vector list; // A container for holding objects retrieved from the broker. diff --git a/cpp/include/qpid/console/Broker.h b/cpp/include/qpid/console/Broker.h index af163b8bfd..0b2d1bcb61 100644 --- a/cpp/include/qpid/console/Broker.h +++ b/cpp/include/qpid/console/Broker.h @@ -55,15 +55,16 @@ namespace console { client::ConnectionSettings& settings); QPID_CONSOLE_EXTERN ~Broker(); - bool isConnected() const { return connected; } - const std::string& getError() const { return error; } - const std::string& getSessionId() const { return amqpSessionId; } - const framing::Uuid& getBrokerId() const { return brokerId; } - uint32_t getBrokerBank() const { return 1; } - void addBinding(const std::string& key) { + QPID_CONSOLE_EXTERN bool isConnected() const { return connected; } + QPID_CONSOLE_EXTERN const std::string& getError() const { return error; } + QPID_CONSOLE_EXTERN const std::string& getSessionId() const { return amqpSessionId; } + QPID_CONSOLE_EXTERN const framing::Uuid& getBrokerId() const { return brokerId; } + QPID_CONSOLE_EXTERN uint32_t getBrokerBank() const { return 1; } + QPID_CONSOLE_EXTERN void addBinding(const std::string& key) { connThreadBody.bindExchange("qpid.management", key); } QPID_CONSOLE_EXTERN std::string getUrl() const; + QPID_CONSOLE_EXTERN void waitForStable(); private: friend class SessionManager; @@ -117,7 +118,6 @@ namespace console { void received(client::Message& msg); void resetAgents(); void updateAgent(const Object& object); - void waitForStable(); void incOutstanding(); void decOutstanding(); void setBrokerId(const framing::Uuid& id) { brokerId = id; } |
