From d0e6cc18bbc8e0e11f526baddc2fc29ed6875b63 Mon Sep 17 00:00:00 2001 From: "Stephen D. Huston" Date: Fri, 29 May 2009 20:07:09 +0000 Subject: Grammar/clarificatione edits; change line endings to DOS so Windows users can read them more easily git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@780087 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/examples/README | 311 ++++++++++++++++++++++++++++------------------------ 1 file changed, 165 insertions(+), 146 deletions(-) (limited to 'cpp') diff --git a/cpp/examples/README b/cpp/examples/README index f28eb29937..b5e9c49f9a 100644 --- a/cpp/examples/README +++ b/cpp/examples/README @@ -1,146 +1,165 @@ -= Qpid C++ Examples = - -Apache Qpid Examples in C++ are found inside this directory, they are -based on the 0-10 version of the AMQP specification (see amqp.org for -details). A short description on each example is found below. - -Please note that you will have to start the Qpid broker on port 5672, -on your localhost (127.0.0.1) before running these examples. However, -it is possible to alternatively specify the host and port when running -each example. - - Ex:- ./declare_queues 127.0.0.1 5673 - -When the Qpid C++ broker is installed, it is located in: -- Linux: /usr/sbin/qpidd -- Windows: C:\Program Files\Apache\qpidc-0.5\bin\qpidd.exe - -In a C++ source distribution the broker is located in the src subdirectory -(generally, from this examples directory, ../src). - -== Direct == - -This is an example on how to create Point-to-Point applications using Qpid. This -example contains three main components. - - 1. declare_queues - This will bind a queue to the amq.direct exchange, so that the messages sent - to the amq.direct exchange, with a given routing key (routing_key) are - delivered to a specific queue (message_queue). - - 2. direct_producer - Publishes messages to the amq.direct exchange using the given routing key - (routing_key) discussed above. - - 3. listener - Uses a message listener to listen messages from a specific queue - (message_queue) as discussed above. - -In order to run this example, - -On Linux: - # ./declare_queues - # ./direct_producer - # ./listener - -On Windows: - C:\Program Files\Apache\qpidc-0.5\examples\direct> declare_queues - C:\Program Files\Apache\qpidc-0.5\examples\direct> direct_producer - C:\Program Files\Apache\qpidc-0.5\examples\direct> listener - -== Fanout == - -This is an example on how to create Fanout exchange applications using Qpid. -This example has two components unlike the previous. This is because Fanout -exchange not needing a routing key to be specified. - - 1. fanout_producer - Publishes a message to the amq.fanout exchange, without using a routing key. - - 2. listener - Uses a message listener to listen messages from the amq.fanout exchange. - -Another difference between the above example and this example is that in the -above example there is no requirement for the listener to be activated before -the messages being published. However, in this example, it is required that a -listener be active before the messages being published, if not they will be -lost. - -In order to run this example, - -On Linux: - # ./listener - # ./fanout_producer - -On Windows: - C:\Program Files\Apache\qpidc-0.5\examples\fanout> listener - C:\Program Files\Apache\qpidc-0.5\examples\direct> fanout_producer - -== Publisher/Subscriber == - -Showing The ability to create topic Publishers and Subscribers using Qpid is -the main objective of this example. It is required that you subscribe first, -before publishing any message due to the construction of this example. There -are two main applications in this. - - 1. topic_publisher - This application is used to publish messages to the amq.topic exchange using - multipart routing keys, usa.weather, europe.weather, usa.news and europe.news. - - 2. topic_listener - This application is used to subscribe to several private queues, such as usa, - europe, weather and news. In here, each private queue created is bound to the - amq.topic exchange using bindings that match the corresponding parts of the - multipart routing keys. - Ex:- #.news will retrieve news irrespective of destination. - -This example also shows the use of the 'control' routing key which is used by -control messages. - -In order to run this example, - -On Linux: - # ./topic_listener - # ./topic_publisher - -On Windows: - C:\Program Files\Apache\qpidc-0.5\examples\pub-sub> topic_listener - C:\Program Files\Apache\qpidc-0.5\examples\pub-sub> topic_publisher - -== Request/Response == - -This example shows a simple server that will accept string from a client and -convert them to upper case and send them back to the client. This too has two -main application like the previous sample. - - 1. client - This sends lines of poetry to the server. - - 2. server - This is a simple service that will convert incoming strings to upper case and - send the result to amq.direct exchange on which the client listens. It uses the - request's reply_to property as the response's routing key. - -In order to run this example, - -On Linux: - # ./server - # ./client - -On Windows: - C:\Program Files\Apache\qpidc-0.5\examples\request-response> server - C:\Program Files\Apache\qpidc-0.5\examples\request-response> client - -== QMF Agent == - -This example demonstrates integration with the Qpid Management Framework (QMF). -After launching a Qpid broker, the sample program will connect to it and -advertise a managed object (org.apache.qpid.agent.example:parent). Using -qpid-tool, you can monitor the object and also call a method (create_child) to -spawn managed child objects. - -To build this example, simply invoke make on Unix or Linux. On Windows, you -must invoke - nmake /f example_gen.mak -before building the sample to generate the supporting model classes -(e.g., Parent,Child,etc.). += Qpid C++ Examples = + + +This directory contains example C++ programs for Apache Qpid. They are +based on the 0-10 version of the AMQP specification (see www.amqp.org for +details). A short description of each example follows. + +Please note that by default these examples attempt to connect to a Qpid +broker running on the local host (127.0.0.1) at the standard AMQP port (5672). +It is possible to instruct the examples to connect to an alternate broker +host and port by specifying the host name/address and port number as arguments +to the programs. For example, to have the declare_queues program connect to a +broker running on host1, port 9999, run the following command: + +On Linux: + # ./declare_queues host1 9999 + +On Windows: + C:\Program Files\Apache\qpidc-0.5\examples\direct> declare_queues host1 9999 + +The qpid C++ broker executable is named qpidd on Linux and qpidd.exe +on Windows. The default install locations are: +- Linux: /usr/sbin +- Windows: C:\Program Files\Apache\qpidc-0.5\bin + +In a C++ source distribution the broker is located in the src subdirectory +(generally, from this examples directory, ../src). + +== Direct == + +This example shows how to create Point-to-Point applications using Qpid. This +example contains three components. + + 1. declare_queues + This will bind a queue to the amq.direct exchange, so that the messages + sent to the amq.direct exchange with a given routing key (routing_key) are + delivered to a specific queue (message_queue). + + 2. direct_producer + Publishes messages to the amq.direct exchange using the given routing key + (routing_key) discussed above. + + 3. listener + Uses a message listener to listen for messages from a specific queue + (message_queue) as discussed above. + +In order to run this example, + +On Linux: + # ./declare_queues + # ./direct_producer + # ./listener + +On Windows: + C:\Program Files\Apache\qpidc-0.5\examples\direct> declare_queues + C:\Program Files\Apache\qpidc-0.5\examples\direct> direct_producer + C:\Program Files\Apache\qpidc-0.5\examples\direct> listener + +Note that there is no requirement for the listener to be running before the +messages are published. The messages are stored in the queue until consumed +by the listener. + +== Fanout == + +This example shows how to create Fanout exchange applications using Qpid. +This example has two components. Unlike the Direct example, the Fanout exchange +does not need a routing key to be specified. + + 1. fanout_producer + Publishes a message to the amq.fanout exchange, without using a routing key. + + 2. listener + Uses a message listener to listen for messages from the amq.fanout exchange. + + +Note that unlike the Direct example, it is necessary to start the listener +before the messages are published. The fanout exchange does not hold messages +in a queue. Therefore, it is recommended that the two parts of the example be +run in separate windows. + +In order to run this example: + +On Linux: + # ./listener + + # ./fanout_producer + +On Windows: + C:\Program Files\Apache\qpidc-0.5\examples\fanout> listener + + C:\Program Files\Apache\qpidc-0.5\examples\direct> fanout_producer + +== Publisher/Subscriber == + +This example demonstrates the ability to create topic Publishers and +Subscribers using Qpid. This example has two components. + + 1. topic_publisher + This application is used to publish messages to the amq.topic exchange + using multipart routing keys, usa.weather, europe.weather, usa.news and + europe.news. + + 2. topic_listener + This application is used to subscribe to several private queues, such as + usa, europe, weather and news. In this program, each private queue created + is bound to the amq.topic exchange using bindings that match the + corresponding parts of the multipart routing keys. For example, subscribing + to #.news will retrieve news irrespective of destination. + +This example also shows the use of the 'control' routing key which is used by +control messages. + +Due to this example's design, the topic_listener must be running before +starting the topic_publisher. Therefore, it is recommended that the two parts +of the example be run in separate windows. + +In order to run this example, + +On Linux: + # ./topic_listener + + # ./topic_publisher + +On Windows: + C:\Program Files\Apache\qpidc-0.5\examples\pub-sub> topic_listener + + C:\Program Files\Apache\qpidc-0.5\examples\pub-sub> topic_publisher + +== Request/Response == + +This example shows a simple server that will accept strings from a client, +convert them to upper case, and send them back to the client. This example +has two components. + + 1. client + This sends lines of poetry to the server. + + 2. server + This is a simple service that will convert incoming strings to upper case + and send the result to amq.direct exchange on which the client listens. + It uses the request's reply_to property as the response's routing key. + +In order to run this example, + +On Linux: + # ./server + # ./client + +On Windows: + C:\Program Files\Apache\qpidc-0.5\examples\request-response> server + C:\Program Files\Apache\qpidc-0.5\examples\request-response> client + +== QMF Agent == + +This example demonstrates integration with the Qpid Management Framework (QMF). +The qmf-agent program will connect to a running Qpid broker and advertise a +managed object (org.apache.qpid.agent.example:parent). Using the qpid-tool, +you can monitor the object and also call a method (create_child) to spawn +managed child objects. + +To build this example, simply invoke make on Unix or Linux. On Windows, you +must invoke + nmake /f example_gen.mak +before building the sample to generate the supporting model classes +(e.g., Parent,Child,etc.). -- cgit v1.2.1