From 9f634ba1b0f2ee6ea2f2e0c3a7a3d892d3eeda7c Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 17 Dec 2014 14:29:37 +0000 Subject: QPID-6273: ensure requests and responses are sent as textual strings rather than binary data git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1646259 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/messaging/client.cpp | 6 +++--- qpid/cpp/examples/messaging/server.cpp | 13 +++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'qpid/cpp/examples/messaging') diff --git a/qpid/cpp/examples/messaging/client.cpp b/qpid/cpp/examples/messaging/client.cpp index 983f0a8878..d695dd9ada 100644 --- a/qpid/cpp/examples/messaging/client.cpp +++ b/qpid/cpp/examples/messaging/client.cpp @@ -39,7 +39,7 @@ using std::string; int main(int argc, char** argv) { const char* url = argc>1 ? argv[1] : "amqp:tcp:127.0.0.1:5672"; std::string connectionOptions = argc > 2 ? argv[2] : ""; - + Connection connection(url, connectionOptions); try { connection.open(); @@ -62,10 +62,10 @@ int main(int argc, char** argv) { Message request; request.setReplyTo(responseQueue); for (int i=0; i<4; i++) { - request.setContent(s[i]); + request.setContentObject(s[i]); sender.send(request); Message response = receiver.fetch(); - std::cout << request.getContent() << " -> " << response.getContent() << std::endl; + std::cout << request.getContentObject() << " -> " << response.getContentObject() << std::endl; } connection.close(); return 0; diff --git a/qpid/cpp/examples/messaging/server.cpp b/qpid/cpp/examples/messaging/server.cpp index aa271d91f9..07f4901441 100644 --- a/qpid/cpp/examples/messaging/server.cpp +++ b/qpid/cpp/examples/messaging/server.cpp @@ -52,14 +52,15 @@ int main(int argc, char** argv) { const Address& address = request.getReplyTo(); if (address) { Sender sender = session.createSender(address); - std::string s = request.getContent(); + std::string s = request.getContentObject(); std::transform(s.begin(), s.end(), s.begin(), toupper); - Message response(s); + Message response; + response.setContentObject(s); sender.send(response); - std::cout << "Processed request: " - << request.getContent() - << " -> " - << response.getContent() << std::endl; + std::cout << "Processed request: " + << request.getContentObject() + << " -> " + << response.getContentObject() << std::endl; session.acknowledge(); } else { std::cerr << "Error: no reply address specified for request: " << request.getContent() << std::endl; -- cgit v1.2.1 From 96ade1c3439226ed73ebcfaa8710b9090ca3ff42 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Fri, 19 Dec 2014 19:41:38 +0000 Subject: QPID-6280: C++ Messaging example server resource leak git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1646849 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/messaging/server.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'qpid/cpp/examples/messaging') diff --git a/qpid/cpp/examples/messaging/server.cpp b/qpid/cpp/examples/messaging/server.cpp index 07f4901441..29389a83bb 100644 --- a/qpid/cpp/examples/messaging/server.cpp +++ b/qpid/cpp/examples/messaging/server.cpp @@ -62,6 +62,7 @@ int main(int argc, char** argv) { << " -> " << response.getContentObject() << std::endl; session.acknowledge(); + sender.close(); } else { std::cerr << "Error: no reply address specified for request: " << request.getContent() << std::endl; session.reject(request); -- cgit v1.2.1 From 55c2d83286aef546d0aaa3e3ecaf323a70abe0b7 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Thu, 8 Jan 2015 19:28:51 +0000 Subject: QPID-6301: [C++ Messaging] Client example acks responses git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1650359 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/messaging/client.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'qpid/cpp/examples/messaging') diff --git a/qpid/cpp/examples/messaging/client.cpp b/qpid/cpp/examples/messaging/client.cpp index d695dd9ada..44720ef3ce 100644 --- a/qpid/cpp/examples/messaging/client.cpp +++ b/qpid/cpp/examples/messaging/client.cpp @@ -7,9 +7,9 @@ * 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 @@ -66,6 +66,7 @@ int main(int argc, char** argv) { sender.send(request); Message response = receiver.fetch(); std::cout << request.getContentObject() << " -> " << response.getContentObject() << std::endl; + session.acknowledge(response); } connection.close(); return 0; -- cgit v1.2.1 From 5c96f379d02dc43bca91260c247c10f3bb1733f2 Mon Sep 17 00:00:00 2001 From: "Charles E. Rolke" Date: Wed, 14 Jan 2015 18:54:00 +0000 Subject: QPID-6308: Preserve request string encoding in response string. Non-string requests are echoed as utf8 strings. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1651773 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/messaging/server.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'qpid/cpp/examples/messaging') diff --git a/qpid/cpp/examples/messaging/server.cpp b/qpid/cpp/examples/messaging/server.cpp index 29389a83bb..ba9fa9e063 100644 --- a/qpid/cpp/examples/messaging/server.cpp +++ b/qpid/cpp/examples/messaging/server.cpp @@ -52,10 +52,24 @@ int main(int argc, char** argv) { const Address& address = request.getReplyTo(); if (address) { Sender sender = session.createSender(address); - std::string s = request.getContentObject(); - std::transform(s.begin(), s.end(), s.begin(), toupper); Message response; - response.setContentObject(s); + + qpid::types::Variant requestObj = request.getContentObject(); + if (requestObj.getType() == qpid::types::VAR_STRING) { + // Received a string. + // Server returns request string in upper case with same encoding. + std::string s = requestObj; + std::transform(s.begin(), s.end(), s.begin(), toupper); + qpid::types::Variant responseObj(s); + responseObj.setEncoding( requestObj.getEncoding() ); + response.setContentObject( responseObj ); + } else { + // Received something other than a string. + // Server echos received object as a utf8 string. + qpid::types::Variant responseObj( requestObj.asString() ); + responseObj.setEncoding( "utf8" ); + response.setContentObject( requestObj ); + } sender.send(response); std::cout << "Processed request: " << request.getContentObject() -- cgit v1.2.1