You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2015/01/19 15:12:55 UTC

svn commit: r1653005 - in /qpid/trunk/qpid/cpp/src: amqp.cmake config.h.cmake qpid/broker/amqp/Connection.cpp qpid/broker/amqp/Outgoing.cpp qpid/broker/amqp/Relay.cpp qpid/broker/amqp/Session.cpp qpid/messaging/amqp/SenderContext.cpp

Author: gsim
Date: Mon Jan 19 14:12:54 2015
New Revision: 1653005

URL: http://svn.apache.org/r1653005
Log:
QPID-6321: handle change to pn_delivery_tag_t in 0.9

Modified:
    qpid/trunk/qpid/cpp/src/amqp.cmake
    qpid/trunk/qpid/cpp/src/config.h.cmake
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp
    qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp

Modified: qpid/trunk/qpid/cpp/src/amqp.cmake
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/amqp.cmake?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/amqp.cmake (original)
+++ qpid/trunk/qpid/cpp/src/amqp.cmake Mon Jan 19 14:12:54 2015
@@ -22,7 +22,7 @@
 find_package(Proton 0.5)
 
 set (amqp_default ${amqp_force})
-set (maximum_version 0.8)
+set (maximum_version 0.9)
 if (Proton_FOUND)
     if (Proton_VERSION GREATER ${maximum_version})
         message(WARNING "Qpid proton ${Proton_VERSION} is not a tested version and might not be compatible, ${maximum_version} is highest tested; build may not work")
@@ -37,6 +37,9 @@ if (Proton_FOUND)
         set (USE_PROTON_TRANSPORT_CONDITION 1)
         set (HAVE_PROTON_EVENTS 1)
     endif (Proton_VERSION GREATER 0.7)
+    if (Proton_VERSION GREATER 0.8)
+        set (NO_PROTON_DELIVERY_TAG_T 1)
+    endif (Proton_VERSION GREATER 0.8)
 else ()
     message(STATUS "Qpid proton not found, amqp 1.0 support not enabled")
 endif ()

Modified: qpid/trunk/qpid/cpp/src/config.h.cmake
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/config.h.cmake?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/config.h.cmake (original)
+++ qpid/trunk/qpid/cpp/src/config.h.cmake Mon Jan 19 14:12:54 2015
@@ -59,5 +59,5 @@
 #cmakedefine HAVE_PROTON_TRACER
 #cmakedefine USE_PROTON_TRANSPORT_CONDITION
 #cmakedefine HAVE_PROTON_EVENTS
-
+#cmakedefine NO_PROTON_DELIVERY_TAG_T
 #endif /* QPID_CONFIG_H */

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Connection.cpp Mon Jan 19 14:12:54 2015
@@ -412,7 +412,11 @@ void Connection::process()
 namespace {
 std::string convert(pn_delivery_tag_t in)
 {
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    return std::string(in.start, in.size);
+#else
     return std::string(in.bytes, in.size);
+#endif
 }
 }
 void Connection::processDeliveries()

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp Mon Jan 19 14:12:54 2015
@@ -32,6 +32,7 @@
 #include "qpid/framing/Buffer.h"
 #include "qpid/framing/reply_exceptions.h"
 #include "qpid/log/Statement.h"
+#include "config.h"
 
 namespace qpid {
 namespace broker {
@@ -285,7 +286,11 @@ qpid::broker::OwnershipToken* OutgoingFr
 
 OutgoingFromQueue::Record::Record() : delivery(0), disposition(0), index(0)
 {
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    tag.start = tagData;
+#else
     tag.bytes = tagData;
+#endif
     tag.size = TAG_WIDTH;
 }
 void OutgoingFromQueue::Record::init(size_t i)
@@ -306,7 +311,11 @@ void OutgoingFromQueue::Record::reset()
 size_t OutgoingFromQueue::Record::getIndex(pn_delivery_tag_t t)
 {
     assert(t.size == TAG_WIDTH);
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    qpid::framing::Buffer buffer(const_cast<char*>(t.start)/*won't ever be written to*/, t.size);
+#else
     qpid::framing::Buffer buffer(const_cast<char*>(t.bytes)/*won't ever be written to*/, t.size);
+#endif
     return (size_t) buffer.getLong();
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Relay.cpp Mon Jan 19 14:12:54 2015
@@ -23,6 +23,7 @@
 #include "qpid/log/Statement.h"
 #include <algorithm>
 #include <string.h>
+#include "config.h"
 
 namespace qpid {
 namespace broker {
@@ -244,7 +245,11 @@ void BufferedTransfer::initIn(pn_link_t*
     //copy delivery tag
     pn_delivery_tag_t dt = pn_delivery_tag(d);
     tag.resize(dt.size);
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    ::memmove(&tag[0], dt.start, dt.size);
+#else
     ::memmove(&tag[0], dt.bytes, dt.size);
+#endif
 
     //set context
     pn_delivery_set_context(d, this);
@@ -264,7 +269,11 @@ bool BufferedTransfer::settle()
 void BufferedTransfer::initOut(pn_link_t* link)
 {
     pn_delivery_tag_t dt;
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    dt.start = &tag[0];
+#else
     dt.bytes = &tag[0];
+#endif
     dt.size = tag.size();
     out.handle = pn_delivery(link, dt);
     //set context

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp Mon Jan 19 14:12:54 2015
@@ -48,6 +48,7 @@
 #include "qpid/framing/MessageTransferBody.h"
 #include "qpid/log/Statement.h"
 #include "qpid/amqp_0_10/Codecs.h"
+#include "config.h"
 #include <boost/intrusive_ptr.hpp>
 #include <boost/format.hpp>
 #include <map>
@@ -615,7 +616,11 @@ void Session::accepted(pn_delivery_t* de
 void Session::readable(pn_link_t* link, pn_delivery_t* delivery)
 {
     pn_delivery_tag_t tag = pn_delivery_tag(delivery);
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    QPID_LOG(debug, "received delivery: " << std::string(tag.start, tag.size));
+#else
     QPID_LOG(debug, "received delivery: " << std::string(tag.bytes, tag.size));
+#endif
     incomingMessageReceived();
     IncomingLinks::iterator target = incoming.find(link);
     if (target == incoming.end()) {

Modified: qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp?rev=1653005&r1=1653004&r2=1653005&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp Mon Jan 19 14:12:54 2015
@@ -30,6 +30,7 @@
 #include "qpid/messaging/Message.h"
 #include "qpid/messaging/MessageImpl.h"
 #include "qpid/log/Statement.h"
+#include "config.h"
 extern "C" {
 #include <proton/engine.h>
 }
@@ -510,7 +511,11 @@ void SenderContext::Delivery::send(pn_li
 {
     pn_delivery_tag_t tag;
     tag.size = sizeof(id);
+#ifdef NO_PROTON_DELIVERY_TAG_T
+    tag.start = reinterpret_cast<const char*>(&id);
+#else
     tag.bytes = reinterpret_cast<const char*>(&id);
+#endif
     token = pn_delivery(sender, tag);
     pn_link_send(sender, encoded.getData(), encoded.getSize());
     if (unreliable) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org