summaryrefslogtreecommitdiff
path: root/cpp/examples/failover/declare_queues.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-11-07 14:08:29 +0000
committerGordon Sim <gsim@apache.org>2008-11-07 14:08:29 +0000
commit82cb5b781573bbdd314bae51694ffada3312b5da (patch)
tree8b0918a47453c49a95a3f0f8510cd425322e3c69 /cpp/examples/failover/declare_queues.cpp
parent897cdd6405ed312afb0a1649ba1c80f7011279e8 (diff)
downloadqpid-python-82cb5b781573bbdd314bae51694ffada3312b5da.tar.gz
* Added some doxygen comments for FailoverManager
* Added means for application to alter the order in which urls are tried (or indeed the list of urls to try) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@712127 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/failover/declare_queues.cpp')
-rw-r--r--cpp/examples/failover/declare_queues.cpp73
1 files changed, 23 insertions, 50 deletions
diff --git a/cpp/examples/failover/declare_queues.cpp b/cpp/examples/failover/declare_queues.cpp
index 14e4a1e3cb..a677870c53 100644
--- a/cpp/examples/failover/declare_queues.cpp
+++ b/cpp/examples/failover/declare_queues.cpp
@@ -19,67 +19,40 @@
*
*/
-#include <qpid/client/FailoverConnection.h>
+#include <qpid/client/FailoverManager.h>
#include <qpid/client/Session.h>
+#include <qpid/Exception.h>
-#include <unistd.h>
#include <cstdlib>
#include <iostream>
-#include <fstream>
using namespace qpid::client;
-using namespace qpid::framing;
-
using namespace std;
-
-
-
-int
-main ( int argc, char ** argv)
+int main(int argc, char ** argv)
{
- if ( argc < 3 )
- {
- std::cerr << "Usage: ./declare_queues host cluster_port_file_name\n";
- std::cerr << "i.e. for host: 127.0.0.1\n";
- exit(1);
- }
-
- const char * host = argv[1];
- int port = atoi(argv[2]);
-
-
- try
- {
- FailoverConnection connection;
- FailoverSession * session;
-
- connection.open ( host, port );
- session = connection.newSession();
-
- session->queueDeclare ( "message_queue");
+ ConnectionSettings settings;
+ if (argc > 1) settings.host = argv[1];
+ if (argc > 2) settings.port = atoi(argv[2]);
+
+ FailoverManager connection(settings);
+ try {
+ bool complete = false;
+ while (!complete) {
+ Session session = connection.connect().newSession();
+ try {
+ session.queueDeclare(arg::queue="message_queue");
+ complete = true;
+ } catch (const qpid::TransportFailure&) {}
+ }
+ connection.close();
+ return 0;
+ } catch (const std::exception& error) {
+ std::cout << "Failed:" << error.what() << std::endl;
+ return 1;
+ }
- /*
- session->exchangeBind
- ( arg::exchange="amq.direct",
- arg::queue="message_queue",
- arg::bindingKey="routing_key"
- );
- * */
- session->exchangeBind ( "message_queue",
- "amq.direct",
- "routing_key"
- );
- connection.close();
- return 0;
- }
- catch ( const std::exception& error )
- {
- std::cout << error.what() << std::endl;
- }
-
- return 1;
}