summaryrefslogtreecommitdiff
path: root/cpp/examples/direct
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-11-09 19:59:54 +0000
committerAlan Conway <aconway@apache.org>2007-11-09 19:59:54 +0000
commitb78af32f2bb9c725bacec590dbdeecaec9b2906c (patch)
treeb779b2ff59cc9a2e8362b4e34e0574f6828d9c75 /cpp/examples/direct
parent23bc7f447a2b2551dc8ae20280ede45b524e06cd (diff)
downloadqpid-python-b78af32f2bb9c725bacec590dbdeecaec9b2906c.tar.gz
Package examples in rpm %doc directory.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593638 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/direct')
-rw-r--r--cpp/examples/direct/Makefile20
-rw-r--r--cpp/examples/direct/direct_config_queues.cpp86
-rw-r--r--cpp/examples/direct/direct_persistent_config_queues.cpp101
-rw-r--r--cpp/examples/direct/direct_persistent_publisher.cpp111
-rw-r--r--cpp/examples/direct/direct_publisher.cpp104
-rw-r--r--cpp/examples/direct/listener.cpp134
6 files changed, 0 insertions, 556 deletions
diff --git a/cpp/examples/direct/Makefile b/cpp/examples/direct/Makefile
deleted file mode 100644
index c94e900a75..0000000000
--- a/cpp/examples/direct/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-CXX=g++
-CXXFLAGS=
-
-PROGRAMS=direct_config_queues listener direct_publisher direct_persistent_publisher
-all: $(PROGRAMS)
-
-direct_config_queues: direct_config_queues.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-listener: listener.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-direct_publisher: direct_publisher.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-direct_persistent_publisher: direct_persistent_publisher.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-clean:
- rm -f $(PROGRAMS)
diff --git a/cpp/examples/direct/direct_config_queues.cpp b/cpp/examples/direct/direct_config_queues.cpp
deleted file mode 100644
index 3a52d4f62f..0000000000
--- a/cpp/examples/direct/direct_config_queues.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/**
- * direct_config_queues.cpp
- *
- * This program is one of three programs designed to be used
- * together. These programs do not specify the exchange type - the
- * default exchange type is the direct exchange.
- *
- * direct_config_queues.cpp (this program):
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue.
- *
- * direct_publisher.cpp:
- *
- * Publishes to a broker, specifying a routing key.
- *
- * direct_listener.cpp
- *
- * Reads from a queue on the broker using a message listener.
- *
- */
-
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-using std::string;
-
-
-int main() {
- Connection connection;
- Message msg;
- try {
- connection.open("127.0.0.1", 5672);
- Session session = connection.newSession();
-
-
- //--------- Main body of program --------------------------------------------
-
- // Create a queue named "message_queue", and route all messages whose
- // routing key is "routing_key to this newly created queue.
-
- session.queueDeclare(arg::queue="message_queue");
- session.queueBind(arg::queue="message_queue", arg::routingKey="routing_key");
-
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-
-}
-
-
-
diff --git a/cpp/examples/direct/direct_persistent_config_queues.cpp b/cpp/examples/direct/direct_persistent_config_queues.cpp
deleted file mode 100644
index afe076278b..0000000000
--- a/cpp/examples/direct/direct_persistent_config_queues.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/**
- * direct_config_durable_queues.cpp
- *
- * This program is one of a set of programs designed to be used
- * together. These programs do not specify the exchange type - the
- * default exchange type is the direct exchange.
- *
- * direct_config_queues.cpp:
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue.
- *
- *
- * direct_publisher.cpp:
- *
- * Publishes to a broker, specifying a routing key.
- *
- * direct_listener.cpp
- *
- * Reads from a queue on the broker using a message listener.
- *
- * direct_persistent_publisher.cpp:
- *
- * Publishes a combination of persistent and transient messages
- * to a broker, specifying a routing key. The persistent messages
- * survive server restart, the transient ones do not (unless the
- * queues are configured as durable queues).
- *
- * direct_config_durable_queues.cpp (this program):
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue. Uses persistent queues, so all
- * messages on the queue survive server restart.
- *
- *
- */
-
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-using std::string;
-
-
-int main() {
- Connection connection;
- Message msg;
- try {
- connection.open("127.0.0.1", 5672);
- Session session = connection.newSession();
-
-
- //--------- Main body of program --------------------------------------------
-
- // Create a queue named "message_queue", and route all messages whose
- // routing key is "routing_key to this newly created queue.
-
- session.queueDeclare(arg::queue="message_queue");
- session.queueBind(arg::queue="message_queue", arg::routingKey="routing_key");
-
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-
-}
-
-
-
diff --git a/cpp/examples/direct/direct_persistent_publisher.cpp b/cpp/examples/direct/direct_persistent_publisher.cpp
deleted file mode 100644
index 75637c7eb9..0000000000
--- a/cpp/examples/direct/direct_persistent_publisher.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-
-/**
- * direct_publisher.cpp:
- *
- * This program is one of three programs designed to be used
- * together. These programs do not specify the exchange type - the
- * default exchange type is the direct exchange.
- *
- * direct_config_queues.cpp:
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue.
- *
- * direct_publisher.cpp (this program):
- *
- * Publishes to a broker, specifying a routing key.
- *
- * direct_listener.cpp
- *
- * Reads from a queue on the broker using a message listener.
- *
- */
-
-
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-#include <qpid/client/Message.h>
-
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-#include <sstream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-using std::stringstream;
-using std::string;
-
-int main() {
- Connection connection;
- Message message;
- try {
- connection.open("127.0.0.1", 5672 );
- Session session = connection.newSession();
-
- //--------- Main body of program --------------------------------------------
-
- // The routing key is a message property. We will use the same
- // routing key for each message, so we'll set this property
- // just once. (In most simple cases, there is no need to set
- // other message properties.)
-
- message.getDeliveryProperties().setRoutingKey("routing_key");
-
- // Now send some messages ...
-
- for (int i=0; i<10; i++) {
- stringstream message_data;
- message_data << "Message " << i;
- message.setData(message_data.str());
-
- // Make odd-numbered messages persistent
-
- if (i % 1)
- message.getDeliveryProperties().setDeliveryMode(PERSISTENT);
- else
- message.getDeliveryProperties().setDeliveryMode(TRANSIENT);
-
- session.messageTransfer(arg::content=message);
- }
-
- // And send a final message to indicate termination.
-
- message.setData("That's all, folks!");
- session.messageTransfer(arg::content=message);
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-}
-
-
diff --git a/cpp/examples/direct/direct_publisher.cpp b/cpp/examples/direct/direct_publisher.cpp
deleted file mode 100644
index 5135f926c3..0000000000
--- a/cpp/examples/direct/direct_publisher.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-
-/**
- * direct_publisher.cpp:
- *
- * This program is one of three programs designed to be used
- * together. These programs do not specify the exchange type - the
- * default exchange type is the direct exchange.
- *
- * direct_config_queues.cpp:
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue.
- *
- * direct_publisher.cpp (this program):
- *
- * Publishes to a broker, specifying a routing key.
- *
- * direct_listener.cpp
- *
- * Reads from a queue on the broker using a message listener.
- *
- */
-
-
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-#include <qpid/client/Message.h>
-
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-#include <sstream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-using std::stringstream;
-using std::string;
-
-int main() {
- Connection connection;
- Message message;
- try {
- connection.open("127.0.0.1", 5672 );
- Session session = connection.newSession();
-
- //--------- Main body of program --------------------------------------------
-
- // The routing key is a message property. We will use the same
- // routing key for each message, so we'll set this property
- // just once. (In most simple cases, there is no need to set
- // other message properties.)
-
- message.getDeliveryProperties().setRoutingKey("routing_key");
-
- // Now send some messages ...
-
- for (int i=0; i<10; i++) {
- stringstream message_data;
- message_data << "Message " << i;
-
- message.setData(message_data.str());
- session.messageTransfer(arg::content=message);
- }
-
- // And send a final message to indicate termination.
-
- message.setData("That's all, folks!");
- session.messageTransfer(arg::content=message);
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-}
-
-
diff --git a/cpp/examples/direct/listener.cpp b/cpp/examples/direct/listener.cpp
deleted file mode 100644
index 52840efa03..0000000000
--- a/cpp/examples/direct/listener.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/**
- * direct_listener.cpp:
- *
- * This program is one of three programs designed to be used
- * together. These programs do not specify the exchange type - the
- * default exchange type is the direct exchange.
- *
- * direct_config_queues.cpp:
- *
- * Creates a queue on a broker, binding a routing key to route
- * messages to that queue.
- *
- * direct_publisher.cpp:
- *
- * Publishes to a broker, specifying a routing key.
- *
- * direct_listener.cpp (this program):
- *
- * Reads from a queue on the broker using a message listener.
- *
- */
-
-#include <qpid/client/Dispatcher.h>
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-#include <qpid/client/Message.h>
-#include <qpid/client/MessageListener.h>
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-
-class Listener : public MessageListener{
-private:
- std::string destination_name;
- Dispatcher dispatcher;
-public:
- Listener(Session& session, string destination_name):
- destination_name(destination_name),
- dispatcher(session)
- {};
-
- virtual void listen();
- virtual void received(Message& message);
- ~Listener() { };
-};
-
-
-void Listener::listen() {
- std::cout << "Activating listener for: " <<destination_name << std::endl;
- dispatcher.listen(destination_name, this);
-
- // ### The following line gives up control - it should be possible
- // ### to listen without giving up control!
-
- dispatcher.run();
-}
-
-
-void Listener::received(Message& message) {
- std::cout << "Message: " << message.getData() << std::endl;
-
- if (message.getData() == "That's all, folks!") {
- std::cout << "Shutting down listener for " <<destination_name << std::endl;
- dispatcher.stop();
- }
-}
-
-
-
-int main() {
- Connection connection;
- Message msg;
- try {
- connection.open("127.0.0.1", 5672);
- Session session = connection.newSession();
-
- //--------- Main body of program --------------------------------------------
-
-
- // Subscribe to the queue, route it to a client destination for
- // the listener. (The destination name merely identifies the
- // destination in the listener, you can use any name as long as
- // you use the same name for the listener).
-
- session.messageSubscribe(arg::queue="message_queue", arg::destination="listener_destination");
-
- // Allocate some credit ### This really should not be needed for simple examples ! ####
-
- session.messageFlow(arg::destination="listener_destination", arg::unit=0, arg::value=1);//messages ### Define a constant?
- session.messageFlow(arg::destination="listener_destination", arg::unit=1, arg::value=0xFFFFFFFF);//bytes ###### Define a constant?
-
- // Tell the listener to listen to the destination we just
- // created above.
-
- Listener listener(session, "listener_destination");
- listener.listen();
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-}
-
-