Author: aconway
Date: Fri Feb 15 13:00:44 2008
New Revision: 628169

URL: http://svn.apache.org/viewvc?rev=628169&view=rev
Log:

Updated c++ and python fanout examples and verify scripts.

Removed:
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp
    incubator/qpid/trunk/qpid/python/examples/fanout/declare_queues.py
Modified:
    incubator/qpid/trunk/qpid/bin/verify
    incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp.in
    incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py
    incubator/qpid/trunk/qpid/python/examples/fanout/verify
    incubator/qpid/trunk/qpid/python/examples/fanout/verify.in

Modified: incubator/qpid/trunk/qpid/bin/verify
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/bin/verify?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/bin/verify (original)
+++ incubator/qpid/trunk/qpid/bin/verify Fri Feb 15 13:00:44 2008
@@ -19,7 +19,11 @@
 
 ARGS="${QPID_HOST:-localhost} $QPID_PORT"
 
-outfile() { echo $1.out; }
+outfile() {
+    file=$1
+    while [ -f $file.out ]; do file="${file}X"; done
+    echo $file.out
+ }
 
 fail() { test -n "$*" && echo $* 1>&2 ; FAIL=1; return 1; }
 

Modified: incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/Makefile.am?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/Makefile.am Fri Feb 15 13:00:44 2008
@@ -6,7 +6,6 @@
        examples/request-response/server.cpp                    \
        examples/request-response/Makefile                      \
        examples/fanout/Makefile                                \
-       examples/fanout/declare_queues.cpp                      \
        examples/fanout/listener.cpp                            \
        examples/fanout/fanout_producer.cpp                     \
        examples/pub-sub/Makefile                               \

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile Fri Feb 15 
13:00:44 2008
@@ -2,7 +2,7 @@
 CXXFLAGS= 
 LDFLAGS=-lqpidclient
 
-PROGRAMS=declare_queues fanout_producer listener
+PROGRAMS=fanout_producer listener
 
 all: $(PROGRAMS)
 

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp 
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp Fri Feb 
15 13:00:44 2008
@@ -69,12 +69,24 @@
 
   //--------- Main body of program --------------------------------------------
 
+      // Unique name for private queue:
+      std::string myQueue=session.getId().str();
+      // Declear my queue. 
+      session.queueDeclare(arg::queue=myQueue, arg::exclusive=true,
+                           arg::autoDelete=true);
+      // Bind my queue to the fanout exchange.
+      // Note no routingKey required, the fanout exchange delivers
+      // all messages to all bound queues unconditionally.
+      session.queueBind(arg::exchange="amq.fanout", arg::queue=myQueue);
+
+      // Create a listener and subscribe it to my queue.
       SubscriptionManager subscriptions(session);
-      // Create a listener and subscribe it to the queue named "message_queue"
       Listener listener(subscriptions);
-      subscriptions.subscribe(listener, "message_queue");
+      subscriptions.subscribe(listener, myQueue);
+
       // Deliver messages until the subscription is cancelled
       // by Listener::received()
+      std::cout << "Listening" << std::endl;
       subscriptions.run();
 
   //---------------------------------------------------------------------------

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify Fri Feb 15 
13:00:44 2008
@@ -1,3 +1,6 @@
 # See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify 
-clients ./declare_queues ./fanout_producer ./listener
-outputs ./declare_queues.out ./fanout_producer.out ./listener.out
+background "Listening" ./listener
+background "Listening" ./listener
+background "Listening" ./listener
+clients ./fanout_producer
+outputs ./fanout_producer.out "./listener.out | remove_uuid" "./listenerX.out 
| remove_uuid" "./listenerXX.out | remove_uuid"

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in Fri Feb 15 
13:00:44 2008
@@ -1,6 +1,6 @@
-==== declare_queues.out
 ==== fanout_producer.out
-==== listener.out
+==== listener.out | remove_uuid
+Listening
 Message: Message 0
 Message: Message 1
 Message: Message 2
@@ -12,4 +12,32 @@
 Message: Message 8
 Message: Message 9
 Message: That's all, folks!
-Shutting down listener for message_queue
+Shutting down listener for 
+==== listenerX.out | remove_uuid
+Listening
+Message: Message 0
+Message: Message 1
+Message: Message 2
+Message: Message 3
+Message: Message 4
+Message: Message 5
+Message: Message 6
+Message: Message 7
+Message: Message 8
+Message: Message 9
+Message: That's all, folks!
+Shutting down listener for 
+==== listenerXX.out | remove_uuid
+Listening
+Message: Message 0
+Message: Message 1
+Message: Message 2
+Message: Message 3
+Message: Message 4
+Message: Message 5
+Message: Message 6
+Message: Message 7
+Message: Message 8
+Message: Message 9
+Message: That's all, folks!
+Shutting down listener for 

Modified: 
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python 
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python 
Fri Feb 15 13:00:44 2008
@@ -1,5 +1,7 @@
 # See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify 
 py=$PYTHON_EXAMPLES/fanout
-clients ./declare_queues ./fanout_producer $py/fanout_consumer.py
-outputs ./declare_queues.out ./fanout_producer.out $py/fanout_consumer.py.out
+background "Subscribed"  $py/fanout_consumer.py
+background "Subscribed"  $py/fanout_consumer.py
+clients ./fanout_producer
+outputs ./fanout_producer.out "$py/fanout_consumer.py.out | remove_uuid64" 
"$py/fanout_consumer.pyX.out | remove_uuid64"
 

Modified: 
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in 
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_cpp_python.in 
Fri Feb 15 13:00:44 2008
@@ -1,14 +1,31 @@
-==== declare_queues.out
 ==== fanout_producer.out
-==== fanout_consumer.py.out
-Message 0
-Message 1
-Message 2
-Message 3
-Message 4
-Message 5
-Message 6
-Message 7
-Message 8
-Message 9
-That's all, folks!
+==== fanout_consumer.py.out | remove_uuid64
+Messages queue: 
+Subscribed to queue 
+Response: Message 0
+Response: Message 1
+Response: Message 2
+Response: Message 3
+Response: Message 4
+Response: Message 5
+Response: Message 6
+Response: Message 7
+Response: Message 8
+Response: Message 9
+Response: That's all, folks!
+No more messages!
+==== fanout_consumer.pyX.out | remove_uuid64
+Messages queue: 
+Subscribed to queue 
+Response: Message 0
+Response: Message 1
+Response: Message 2
+Response: Message 3
+Response: Message 4
+Response: Message 5
+Response: Message 6
+Response: Message 7
+Response: Message 8
+Response: Message 9
+Response: That's all, folks!
+No more messages!

Modified: 
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp 
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp 
Fri Feb 15 13:00:44 2008
@@ -1,5 +1,7 @@
 # See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify 
 py=$PYTHON_EXAMPLES/fanout
-clients $py/declare_queues.py $py/fanout_producer.py ./listener
-outputs $py/declare_queues.py.out $py/fanout_producer.py.out ./listener.out
+background "Listening" ./listener
+background "Listening" ./listener
+clients $py/fanout_producer.py
+outputs $py/fanout_producer.py.out "./listener.out | remove_uuid" 
"./listenerX.out | remove_uuid"
 

Modified: 
incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp.in
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp.in?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp.in 
(original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify_python_cpp.in 
Fri Feb 15 13:00:44 2008
@@ -1,6 +1,6 @@
-==== declare_queues.py.out
 ==== fanout_producer.py.out
-==== listener.out
+==== listener.out | remove_uuid
+Listening
 Message: message 0
 Message: message 1
 Message: message 2
@@ -12,4 +12,18 @@
 Message: message 8
 Message: message 9
 Message: That's all, folks!
-Shutting down listener for message_queue
+Shutting down listener for 
+==== listenerX.out | remove_uuid
+Listening
+Message: message 0
+Message: message 1
+Message: message 2
+Message: message 3
+Message: message 4
+Message: message 5
+Message: message 6
+Message: message 7
+Message: message 8
+Message: message 9
+Message: That's all, folks!
+Shutting down listener for 

Modified: incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py 
(original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/fanout_consumer.py Fri Feb 
15 13:00:44 2008
@@ -5,13 +5,57 @@
  This AMQP client reads messages from a message
  queue named "message_queue".
 """
-
+import base64
 import qpid
 import sys
 from qpid.client import Client
 from qpid.content import Content
 from qpid.queue import Empty
 
+#----- Functions -------------------------------------------
+
+def dump_queue(client, queue_name):
+
+  print "Messages queue: " + queue_name 
+
+  consumer_tag = queue_name     # Use the queue name as the consumer tag - 
need a unique tag
+  queue = client.queue(consumer_tag)
+
+  # Call message_subscribe() to tell the broker to deliver messages
+  # from the AMQP queue to a local client queue. The broker will
+  # start delivering messages as soon as message_subscribe() is called.
+
+  session.message_subscribe(queue=queue_name, destination=consumer_tag)
+  session.message_flow(consumer_tag, 0, 0xFFFFFFFF)
+  session.message_flow(consumer_tag, 1, 0xFFFFFFFF)
+
+  print "Subscribed to queue " + queue_name
+  sys.stdout.flush()
+
+  message = 0
+
+  while True:
+    try:
+      message = queue.get(timeout=10)
+      content = message.content.body
+      print "Response: " + content
+    except Empty:
+      print "No more messages!"
+      break
+    except:
+      print "Unexpected exception!"
+      break
+
+
+  #  Messages are not removed from the queue until they
+  #  are acknowledged. Using cumulative=True, all messages
+  #  in the session up to and including the one identified
+  #  by the delivery tag are acknowledged. This is more efficient,
+  #  because there are fewer network round-trips.
+
+  if message != 0:
+    message.complete(cumulative=True)
+
 
 #----- Initialization --------------------------------------
 
@@ -29,44 +73,22 @@
 client.start({"LOGIN": user, "PASSWORD": password})
 
 session = client.session()
-session.session_open()
-
-#----- Read from queue --------------------------------------------
-
-# Now let's create a local client queue and tell it to read
-# incoming messages.
-
-# The consumer tag identifies the client-side queue.
-
-consumer_tag = "consumer1"
-queue = client.queue(consumer_tag)
-
-# Call message_subscribe() to tell the broker to deliver messages
-# from the AMQP queue to this local client queue. The broker will
-# start delivering messages as soon as message_subscribe() is called.
-
-session.message_subscribe(queue="message_queue", destination=consumer_tag)
-session.message_flow(consumer_tag, 0, 0xFFFFFFFF)
-session.message_flow(consumer_tag, 1, 0xFFFFFFFF)
-
-#  Initialize 'final' and 'content', variables used to identify the last 
message.
-
-final = "That's all, folks!"   # In a message body, signals the last message
-content = ""                  # Content of the last message read
+session_info = session.session_open()
+session_id = session_info.session_id
 
-message = None
-while content != final:
-       message = queue.get(timeout=10)
-       content = message.content.body
-       print content
+#----- Main Body -- ----------------------------------------
 
-#  Messages are not removed from the queue until they are
-#  acknowledged. Using cumulative=True, all messages from the session
-#  up to and including the one identified by the delivery tag are
-#  acknowledged. This is more efficient, because there are fewer
-#  network round-trips.
+# Make a unique queue name for my queue from the session ID.
+my_queue = base64.urlsafe_b64encode(session_id)
+session.queue_declare(queue=my_queue)
+
+# Bind my queue to the fanout exchange. No routing key is required
+# the fanout exchange copies messages unconditionally to every
+# bound queue
+session.queue_bind(queue=my_queue, exchange="amq.fanout")
 
-message.complete(cumulative=True)
+# Dump the messages on the queue.
+dump_queue(client, my_queue)
 
 #----- Cleanup ------------------------------------------------
 

Modified: incubator/qpid/trunk/qpid/python/examples/fanout/verify
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/verify?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/verify (original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/verify Fri Feb 15 13:00:44 
2008
@@ -1,3 +1,5 @@
 # See https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid/bin/verify 
-clients ./declare_queues.py ./fanout_producer.py ./fanout_consumer.py
-outputs ./declare_queues.py.out ./fanout_producer.py.out 
./fanout_consumer.py.out
+background "Subscribed" ./fanout_consumer.py
+background "Subscribed" ./fanout_consumer.py
+clients ./fanout_producer.py
+outputs ./fanout_producer.py.out "./fanout_consumer.py.out | remove_uuid64" 
"./fanout_consumer.pyX.out | remove_uuid64"

Modified: incubator/qpid/trunk/qpid/python/examples/fanout/verify.in
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/examples/fanout/verify.in?rev=628169&r1=628168&r2=628169&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/examples/fanout/verify.in (original)
+++ incubator/qpid/trunk/qpid/python/examples/fanout/verify.in Fri Feb 15 
13:00:44 2008
@@ -1,14 +1,31 @@
-==== declare_queues.py.out
 ==== fanout_producer.py.out
-==== fanout_consumer.py.out
-message 0
-message 1
-message 2
-message 3
-message 4
-message 5
-message 6
-message 7
-message 8
-message 9
-That's all, folks!
+==== fanout_consumer.py.out | remove_uuid64
+Messages queue: 
+Subscribed to queue 
+Response: message 0
+Response: message 1
+Response: message 2
+Response: message 3
+Response: message 4
+Response: message 5
+Response: message 6
+Response: message 7
+Response: message 8
+Response: message 9
+Response: That's all, folks!
+No more messages!
+==== fanout_consumer.pyX.out | remove_uuid64
+Messages queue: 
+Subscribed to queue 
+Response: message 0
+Response: message 1
+Response: message 2
+Response: message 3
+Response: message 4
+Response: message 5
+Response: message 6
+Response: message 7
+Response: message 8
+Response: message 9
+Response: That's all, folks!
+No more messages!


Reply via email to