summaryrefslogtreecommitdiff
path: root/cpp/examples/fanout
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/fanout
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/fanout')
-rw-r--r--cpp/examples/fanout/Makefile17
-rw-r--r--cpp/examples/fanout/fanout_config_queues.cpp86
-rw-r--r--cpp/examples/fanout/fanout_consumer.cpp83
-rw-r--r--cpp/examples/fanout/fanout_publisher.cpp102
-rw-r--r--cpp/examples/fanout/listener.cpp134
5 files changed, 0 insertions, 422 deletions
diff --git a/cpp/examples/fanout/Makefile b/cpp/examples/fanout/Makefile
deleted file mode 100644
index 719a7e7416..0000000000
--- a/cpp/examples/fanout/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-CXX=g++
-CXXFLAGS=
-
-PROGRAMS=fanout_config_queues listener fanout_publisher
-all: $(PROGRAMS)
-
-fanout_config_queues: fanout_config_queues.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-listener: listener.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-fanout_publisher: fanout_publisher.cpp
- $(CXX) $(CXXFLAGS) -lqpidclient -o $@ $^
-
-clean:
- rm -f $(PROGRAMS)
diff --git a/cpp/examples/fanout/fanout_config_queues.cpp b/cpp/examples/fanout/fanout_config_queues.cpp
deleted file mode 100644
index b09b5191d1..0000000000
--- a/cpp/examples/fanout/fanout_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::exchange="amq.fanout");
-
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-
-}
-
-
-
diff --git a/cpp/examples/fanout/fanout_consumer.cpp b/cpp/examples/fanout/fanout_consumer.cpp
deleted file mode 100644
index 663c765159..0000000000
--- a/cpp/examples/fanout/fanout_consumer.cpp
+++ /dev/null
@@ -1,83 +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_consumer.cpp (this program):
- *
- * Reads from a queue on the broker using session.get().
- *
- * This is less efficient that direct_listener.cpp, but simpler,
- * and can be a better approach when synchronizing messages from
- * multiple queues.
- *
- */
-
-#include <qpid/client/Dispatcher.h>
-#include <qpid/client/Connection.h>
-#include <qpid/client/Session.h>
-#include <qpid/client/ClientMessage.h>
-
-#include <unistd.h>
-#include <cstdlib>
-#include <iostream>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-
-int main() {
- Connection connection;
- Message msg;
- try {
- connection.open("127.0.0.1", 5672);
- Session session = connection.newSession();
-
- //--------- Main body of program --------------------------------------------
-
- Listener listener(session, "destination");
- ### session.get();
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-}
-
-
diff --git a/cpp/examples/fanout/fanout_publisher.cpp b/cpp/examples/fanout/fanout_publisher.cpp
deleted file mode 100644
index 976c53aae4..0000000000
--- a/cpp/examples/fanout/fanout_publisher.cpp
+++ /dev/null
@@ -1,102 +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 --------------------------------------------
-
- // Unlike topic exchanges and direct exchanges, a fanout
- // exchange need not set a routing key.
-
- Message message;
-
- // 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, arg::destination="amq.fanout");
- }
-
- // And send a final message to indicate termination.
-
- message.setData("That's all, folks!");
- session.messageTransfer(arg::content=message, arg::destination="amq.fanout");
-
- //-----------------------------------------------------------------------------
-
- connection.close();
- return 0;
- } catch(const std::exception& error) {
- std::cout << error.what() << std::endl;
- }
- return 1;
-}
-
-
diff --git a/cpp/examples/fanout/listener.cpp b/cpp/examples/fanout/listener.cpp
deleted file mode 100644
index 52840efa03..0000000000
--- a/cpp/examples/fanout/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;
-}
-
-