You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jo...@apache.org on 2010/05/05 22:56:17 UTC

svn commit: r941482 - in /qpid/trunk/qpid/cpp/examples/messaging: Makefile.am hello_xml.cpp

Author: jonathan
Date: Wed May  5 20:56:16 2010
New Revision: 941482

URL: http://svn.apache.org/viewvc?rev=941482&view=rev
Log:
Added hello_xml.cpp example.

Added:
    qpid/trunk/qpid/cpp/examples/messaging/hello_xml.cpp
Modified:
    qpid/trunk/qpid/cpp/examples/messaging/Makefile.am

Modified: qpid/trunk/qpid/cpp/examples/messaging/Makefile.am
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/Makefile.am?rev=941482&r1=941481&r2=941482&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/Makefile.am (original)
+++ qpid/trunk/qpid/cpp/examples/messaging/Makefile.am Wed May  5 20:56:16 2010
@@ -24,11 +24,14 @@ INCLUDES = -I$(top_srcdir)/include -I$(t
 CLIENT_LIB=$(top_builddir)/src/libqpidclient.la
 CLIENTFLAGS=-lqpidclient
 
-noinst_PROGRAMS=drain spout client server map_sender map_receiver hello_world
+noinst_PROGRAMS=drain spout client server map_sender map_receiver hello_world hello_xml
 
 hello_world_SOURCES=hello_world.cpp
 hello_world_LDADD=$(CLIENT_LIB)
 
+hello_xml_SOURCES=hello_xml.cpp
+hello_xml_LDADD=$(CLIENT_LIB)
+
 drain_SOURCES=drain.cpp OptionParser.h OptionParser.cpp
 drain_LDADD=$(CLIENT_LIB)
 
@@ -49,6 +52,7 @@ map_receiver_LDADD=$(CLIENT_LIB)
 
 examples_DATA=                 \
 	hello_world.cpp	       \
+	hello_xml.cpp	       \
 	drain.cpp              \
 	spout.cpp              \
 	OptionParser.cpp       \

Added: qpid/trunk/qpid/cpp/examples/messaging/hello_xml.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/messaging/hello_xml.cpp?rev=941482&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/examples/messaging/hello_xml.cpp (added)
+++ qpid/trunk/qpid/cpp/examples/messaging/hello_xml.cpp Wed May  5 20:56:16 2010
@@ -0,0 +1,64 @@
+#include <qpid/messaging/Connection.h>
+#include <qpid/messaging/Message.h>
+#include <qpid/messaging/Receiver.h>
+#include <qpid/messaging/Sender.h>
+#include <qpid/messaging/Session.h>
+
+#include <iostream>
+#include <sstream>
+using std::stringstream;
+
+using namespace qpid::messaging;
+
+int main(int argc, char** argv) {
+  std::string broker = argc > 1 ? argv[1] : "localhost:5672";
+  std::string query = 
+    "let $w := ./weather "
+    "return $w/station = 'Raleigh-Durham International Airport (KRDU)' "
+    "   and $w/temperature_f > 50"
+    "   and $w/temperature_f - $w/dewpoint > 5"
+    "   and $w/wind_speed_mph > 7"
+    "   and $w/wind_speed_mph < 20";
+
+  stringstream address;
+
+  address << "xml; {"
+    " create: always, "        // This line and the next are not in docs
+    " node: { type: topic }, " // Added so it works "out of the box"
+    " link: { "
+    "  x-bindings: [{ exchange: xml, key: weather, arguments: { xquery:\"" 
+       << query 
+       << "\"} }] "
+    " } "
+    "}";
+
+  Connection connection(broker);
+  try {
+    connection.open();
+    Session session = connection.createSession();
+
+    Receiver receiver = session.createReceiver(address.str());
+
+    Message message;
+    message.setContent(
+       "<weather>"
+       "<station>Raleigh-Durham International Airport (KRDU)</station>"
+       "<wind_speed_mph>16</wind_speed_mph>"
+       "<temperature_f>70</temperature_f>"
+       "<dewpoint>35</dewpoint>"
+       "</weather>");
+    Sender sender = session.createSender("xml/weather");
+    sender.send(message);
+
+    Message response = receiver.fetch();
+
+    std::cout << response.getContent() << std::endl;
+
+    connection.close();
+    return 0;
+  } catch(const std::exception& error) {
+    std::cerr << error.what() << std::endl;
+    connection.close();
+    return 1;   
+  }
+}



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org