diff options
| author | Alan Conway <aconway@apache.org> | 2007-11-09 19:59:54 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-11-09 19:59:54 +0000 |
| commit | b78af32f2bb9c725bacec590dbdeecaec9b2906c (patch) | |
| tree | b779b2ff59cc9a2e8362b4e34e0574f6828d9c75 /cpp/examples/fanout | |
| parent | 23bc7f447a2b2551dc8ae20280ede45b524e06cd (diff) | |
| download | qpid-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/Makefile | 17 | ||||
| -rw-r--r-- | cpp/examples/fanout/fanout_config_queues.cpp | 86 | ||||
| -rw-r--r-- | cpp/examples/fanout/fanout_consumer.cpp | 83 | ||||
| -rw-r--r-- | cpp/examples/fanout/fanout_publisher.cpp | 102 | ||||
| -rw-r--r-- | cpp/examples/fanout/listener.cpp | 134 |
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; -} - - |
