You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/12/14 18:21:56 UTC

svn commit: r604235 - in /incubator/qpid/trunk/qpid/cpp/examples: ./ examples/direct/ examples/fanout/ examples/request-response/

Author: aconway
Date: Fri Dec 14 09:21:53 2007
New Revision: 604235

URL: http://svn.apache.org/viewvc?rev=604235&view=rev
Log:
From:  Jonathan Robie <jr...@redhat.com>
 - Updated examples and verify script.

>From me: Integration of verify in make check.

Added:
    incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp   (with props)
    incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp   (with props)
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp   (with props)
    incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp   (with props)
Modified:
    incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
    incubator/qpid/trunk/qpid/cpp/examples/examples/direct/Makefile
    incubator/qpid/trunk/qpid/cpp/examples/examples/direct/listener.cpp
    incubator/qpid/trunk/qpid/cpp/examples/examples/direct/verify.in
    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.in
    incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/client.cpp
    incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/server.cpp
    incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify.in
    incubator/qpid/trunk/qpid/cpp/examples/verify

Modified: incubator/qpid/trunk/qpid/cpp/examples/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/Makefile.am?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/Makefile.am Fri Dec 14 09:21:53 2007
@@ -24,15 +24,26 @@
 # Note: we don't use normal automake SUBDIRS because the example
 # makefiles don't understand all the recursive automake targets.
 
-clean:
+clean-local:
 	cd examples; $(MAKE) clean
+	rm -f examples/*/*.out  examples/*/*.wait 
 
 abs_srcdir=@abs_srcdir@
+abs_top_builddir=@abs_top_builddir@
 
-# Build the installed examples, then clean up to avoid rpmbuild warnings.
+# Build the examples in the source tree.
+all-local:
+	cd examples && $(MAKE) CXX="$(CXX)" CXXFLAGS="-I../../$(top_srcdir)/src -I../../$(top_srcdir)/src/gen -I../../$(top_builddir)/src/gen -L../../$(top_builddir)/src/.libs -Wl,-rpath,$(abs_top_builddir)/src/.libs" all
+
+# Verify the examples in the source tree.
+check-local:
+	cd examples && QPIDD=$(abs_top_builddir)/src/qpidd ../verify
+
+# Build and verify the installed examples, then clean up to avoid rpmbuild warnings.
 EXAMPLE_FLAGS=-I$(DESTDIR)$(includedir) -L$(DESTDIR)$(libdir) -Wl,-rpath,$(DESTDIR)$(libdir)
 EXAMPLE_DIR=$(DESTDIR)$(pkgdatadir)/examples 
 installcheck-local:
 	cd $(EXAMPLE_DIR) && $(MAKE) CXX="$(CXX)" CXXFLAGS="$(EXAMPLE_FLAGS)" all
-	cd $(EXAMPLE_DIR) && $(abs_srcdir)/verify
+	cd $(EXAMPLE_DIR) && QPIDD=$(top_builddir)/src/qpidd $(abs_srcdir)/verify
 	cd $(EXAMPLE_DIR) && $(MAKE) clean
+

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/Makefile
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/direct/Makefile?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/direct/Makefile (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/direct/Makefile Fri Dec 14 09:21:53 2007
@@ -2,7 +2,7 @@
 CXXFLAGS= 
 LDFLAGS=-lqpidclient
 
-PROGRAMS=direct_config_queues direct_persistent_config_queues direct_persistent_publisher direct_publisher listener
+PROGRAMS=declare_queues direct_producer listener
 
 all: $(PROGRAMS)
 

Added: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp?rev=604235&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp Fri Dec 14 09:21:53 2007
@@ -0,0 +1,84 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/**
+ *  declare_queues.cpp
+ *
+ *  This program is one of three programs designed to be used
+ *  together. These programs use the "amq.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_producer.cpp:
+ *
+ *      Publishes to a broker, specifying a routing key.
+ *
+ *  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::exchange="amq.direct", 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;
+   
+}
+
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/declare_queues.cpp
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp?rev=604235&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp Fri Dec 14 09:21:53 2007
@@ -0,0 +1,104 @@
+/*
+ *
+ * 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_producer.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.
+ *  
+ *    create_queues.cpp:
+ *
+ *      Creates a queue on a broker, binding a routing key to route
+ *      messages to that queue.
+ *
+ *    direct_producer.cpp (this program):
+ *
+ *      Publishes to a broker, specifying a routing key.
+ *
+ *    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,  arg::destination="amq.direct");
+	}
+	
+	// And send a final message to indicate termination.
+
+	message.setData("That's all, folks!");
+        session.messageTransfer(arg::content=message,  arg::destination="amq.direct"); 
+
+  //-----------------------------------------------------------------------------
+
+        connection.close();
+        return 0;
+    } catch(const std::exception& error) {
+        std::cout << error.what() << std::endl;
+    }
+    return 1;
+}
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/direct_producer.cpp
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/listener.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/direct/listener.cpp?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/direct/listener.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/direct/listener.cpp Fri Dec 14 09:21:53 2007
@@ -20,22 +20,22 @@
  */
 
 /**
- *  direct_listener.cpp:
+ *  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:
+ *    declare_queues.cpp:
  *
  *      Creates a queue on a broker, binding a routing key to route
  *      messages to that queue.
  *
- *    direct_publisher.cpp:
+ *    direct_producer.cpp:
  *
  *      Publishes to a broker, specifying a routing key.
  *
- *    direct_listener.cpp (this program):
+ *    listener.cpp (this program):
  *
  *      Reads from a queue on the broker using a message listener.
  *
@@ -75,8 +75,7 @@
   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!
+  // The following line gives up control
 
   dispatcher.run();
 }
@@ -110,8 +109,7 @@
 
       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?
 

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/direct/verify.in
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/direct/verify.in?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/direct/verify.in (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/direct/verify.in Fri Dec 14 09:21:53 2007
@@ -1,25 +1,6 @@
-==== ./direct_config_queues
+==== ./declare_queues
 ====
-==== ./direct_publisher
-====
-==== ./listener
-Activating listener for: listener_destination
-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 listener_destination
-====
-==== ./direct_persistent_config_queues
-====
-==== ./direct_persistent_publisher
+==== ./direct_producer
 ====
 ==== ./listener
 Activating listener for: listener_destination

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=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/Makefile Fri Dec 14 09:21:53 2007
@@ -2,7 +2,7 @@
 CXXFLAGS= 
 LDFLAGS=-lqpidclient
 
-PROGRAMS=fanout_config_queues fanout_publisher listener
+PROGRAMS=declare_queues fanout_producer listener
 
 all: $(PROGRAMS)
 

Added: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp?rev=604235&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp Fri Dec 14 09:21:53 2007
@@ -0,0 +1,85 @@
+/*
+ *
+ * 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 use the "amq.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;
+   
+}
+
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/declare_queues.cpp
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp?rev=604235&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp Fri Dec 14 09:21:53 2007
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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;
+}
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/fanout_producer.cpp
------------------------------------------------------------------------------
    svn:keywords = Rev Date

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=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/listener.cpp Fri Dec 14 09:21:53 2007
@@ -110,8 +110,6 @@
 
       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?
 

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=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/fanout/verify.in Fri Dec 14 09:21:53 2007
@@ -1,6 +1,6 @@
-==== ./fanout_config_queues
+==== ./declare_queues
 ====
-==== ./fanout_publisher
+==== ./fanout_producer
 ====
 ==== ./listener
 Activating listener for: listener_destination

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/client.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/client.cpp?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/client.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/client.cpp Fri Dec 14 09:21:53 2007
@@ -79,7 +79,6 @@
 
   session.messageSubscribe(arg::queue=destination_name, arg::destination=destination_name);
 
-    // Allocate credit. Sigh. This really should not be required #####
   session.messageFlow(arg::destination=destination_name, arg::unit=0, arg::value=1);//messages ### Define a constant?
   session.messageFlow(arg::destination=destination_name, arg::unit=1, arg::value=0xFFFFFFFF);//bytes ###### Define a constant?
 
@@ -126,8 +125,8 @@
 
         // Use the name of the response queue as the routing key
 
-	session.queueDeclare(arg::queue=response_queue.str());  // ### Nice if I could just use strstream for this
-        session.queueBind(arg::queue=response_queue.str(), arg::routingKey=response_queue.str());
+	session.queueDeclare(arg::queue=response_queue.str());
+        session.queueBind(arg::exchange="amq.direct", arg::queue=response_queue.str(), arg::routingKey=response_queue.str());
 
 	// Create a listener for the response queue and start listening.
 
@@ -136,13 +135,13 @@
 
 
 	// The routing key for the request queue is simply
-	// "request_queue", and all clients use the same routing key.
+	// "request", and all clients use the same routing key.
 	//
 	// Each client sends the name of their own response queue so
 	// the service knows where to route messages.
 
-	request.getDeliveryProperties().setRoutingKey("request_queue");
-	request.getHeaders().setString("reply-to", response_queue.str());
+	request.getDeliveryProperties().setRoutingKey("request");
+	request.getMessageProperties().setReplyTo(ReplyTo("", response_queue.str()));
 
 	// Now send some requests ...
 
@@ -156,7 +155,7 @@
 
 	for (int i=0; i<4; i++) {
 	  request.setData(s[i]);
-          session.messageTransfer(arg::content=request);
+          session.messageTransfer(arg::content=request, arg::destination="amq.direct");
 	  std::cout << "Request: " << s[i] << std::endl;
 	}
 

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/server.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/server.cpp?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/server.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/server.cpp Fri Dec 14 09:21:53 2007
@@ -99,9 +99,19 @@
 void Listener::received(Message& request) {
 
   Message response;
-  string routingKey = request.getHeaders().getString("reply-to");
 
-  std::cout << "Request:: " << request.getData() << "  (" <<routingKey << ")" << std::endl;
+  // Get routing key for response from the request's replyTo property
+
+  string routingKey;
+
+  if (request.getMessageProperties().hasReplyTo()) {
+    routingKey = request.getMessageProperties().getReplyTo().getRoutingKey();
+  } else {
+    std::cout << "Error: " << "No routing key for request (" << request.getData() << ")" << std::endl;
+    return;
+  } 
+
+  std::cout << "Request: " << request.getData() << "  (" <<routingKey << ")" << std::endl;
 
   // Transform message content to upper case
   std::string s = request.getData();
@@ -110,7 +120,7 @@
 
   // Send it back to the user
   response.getDeliveryProperties().setRoutingKey(routingKey);
-  session.messageTransfer(arg::content=response);
+  session.messageTransfer(arg::content=response, arg::destination="amq.direct");
 }
 
 
@@ -126,12 +136,12 @@
 	// Create a request queue for clients to use when making
 	// requests.
 
-	string request_queue = "request_queue";
+	string request_queue = "request";
 
         // Use the name of the request queue as the routing key
 
 	session.queueDeclare(arg::queue=request_queue);
-        session.queueBind(arg::queue=request_queue, arg::routingKey=request_queue);
+        session.queueBind(arg::exchange="amq.direct", arg::queue=request_queue, arg::routingKey=request_queue);
 
 	// Create a listener for the request queue and start listening.
 

Modified: incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify.in
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify.in?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify.in (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/examples/request-response/verify.in Fri Dec 14 09:21:53 2007
@@ -12,10 +12,10 @@
 Shutting down listener for client 
 ====
 ==== remove_uuid server.out
-Activating request queue listener for: request_queue
+Activating request queue listener for: request
 Waiting for requests
-Request:: Twas brillig, and the slithy toves  (client )
-Request:: Did gire and gymble in the wabe.  (client )
-Request:: All mimsy were the borogroves,  (client )
-Request:: And the mome raths outgrabe.  (client )
+Request: Twas brillig, and the slithy toves  (client )
+Request: Did gire and gymble in the wabe.  (client )
+Request: All mimsy were the borogroves,  (client )
+Request: And the mome raths outgrabe.  (client )
 ====

Modified: incubator/qpid/trunk/qpid/cpp/examples/verify
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/examples/verify?rev=604235&r1=604234&r2=604235&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/examples/verify (original)
+++ incubator/qpid/trunk/qpid/cpp/examples/verify Fri Dec 14 09:21:53 2007
@@ -5,6 +5,14 @@
 DIR=$PWD
 SRC=`dirname $0 | sed 's|^\([^/].*\)|'$PWD'/\1|'`/examples
 
+# Start private broker if QPIDD is set.
+
+if [ -n "$QPIDD" ] ; then
+    QPID_PORT=`$QPIDD -dp0` || { echo "Cannot start $QPIDD" ; exit 1; }
+    export QPID_PORT
+    trap "$QPIDD -q" EXIT
+fi
+
 # Utility functions
 
 run() {
@@ -28,17 +36,20 @@
 # Scripts for each example
 
 direct() {
-    run ./direct_config_queues  > verify.out
-    run ./direct_publisher >> verify.out
+    run ./declare_queues  > verify.out
+    run ./direct_producer >> verify.out
     run ./listener >> verify.out
-    run ./direct_persistent_config_queues >> verify.out
-    run ./direct_persistent_publisher >> verify.out
+}
+
+persistent() {
+    run ./declare_queues >> verify.out
+    run ./direct_persistent_producer >> verify.out
     run ./listener >> verify.out
 }
 
 fanout() {
-    run ./fanout_config_queues > verify.out
-    run ./fanout_publisher >>verify.out
+    run ./declare_queues > verify.out
+    run ./fanout_producer >>verify.out
     run ./listener >>verify.out
 }
 
@@ -59,11 +70,14 @@
     run remove_uuid server.out >> verify.out
 }
 
+# FIXME aconway 2007-12-14: put back pub-sub and persistence when fixed.
+
 # Main
-for ex in direct fanout pub-sub request-response; do
+for ex in  direct fanout request-response ; do
     func=`echo $ex | tr - _`
     echo "Verifing $ex"
     ( cd $ex && $func && verify && rm -f *.out *.wait) 
 done
 
 exit $RET
+