You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by pm...@apache.org on 2014/03/03 13:46:31 UTC

svn commit: r1573546 - in /qpid/trunk/qpid/cpp/src/qpid/broker: Message.cpp Message.h amqp/Header.cpp

Author: pmoravec
Date: Mon Mar  3 12:46:30 2014
New Revision: 1573546

URL: http://svn.apache.org/r1573546
Log:
QPID-5594: [amqp1.0] missing first-acquirer property support in C++ broker

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/Message.h
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Header.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp?rev=1573546&r1=1573545&r2=1573546&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp Mon Mar  3 12:46:30 2014
@@ -46,12 +46,12 @@ using std::string;
 namespace qpid {
 namespace broker {
 
-Message::Message() : deliveryCount(-1), publisher(0), expiration(FAR_FUTURE), timestamp(0),
+Message::Message() : deliveryCount(-1), alreadyAcquired(false), publisher(0), expiration(FAR_FUTURE), timestamp(0),
                      isManagementMessage(false), replicationId(0)
 {}
 
 Message::Message(boost::intrusive_ptr<Encoding> e, boost::intrusive_ptr<PersistableMessage> p)
-    : encoding(e), persistentContext(p), deliveryCount(-1), publisher(0),
+    : encoding(e), persistentContext(p), deliveryCount(-1), alreadyAcquired(false), publisher(0),
       expiration(FAR_FUTURE), timestamp(0), isManagementMessage(false),
       replicationId(0)
 {

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Message.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Message.h?rev=1573546&r1=1573545&r2=1573546&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.h Mon Mar  3 12:46:30 2014
@@ -85,10 +85,11 @@ public:
     QPID_BROKER_EXTERN ~Message();
 
     bool isRedelivered() const { return deliveryCount > 0; }
-    void deliver() { ++deliveryCount; }
+    bool hasBeenAcquired() const { return alreadyAcquired; }
+    void deliver() { ++deliveryCount; alreadyAcquired |= (deliveryCount>0); }
     void undeliver() { --deliveryCount; }
     int getDeliveryCount() const { return deliveryCount; }
-    void resetDeliveryCount() { deliveryCount = -1; }
+    void resetDeliveryCount() { deliveryCount = -1; alreadyAcquired = false; }
 
     QPID_BROKER_EXTERN void setPublisher(const Connection& p);
     const Connection* getPublisher() const;
@@ -148,6 +149,7 @@ public:
     boost::intrusive_ptr<Encoding> encoding;
     boost::intrusive_ptr<PersistableMessage> persistentContext;
     int deliveryCount;
+    bool alreadyAcquired;
     const Connection* publisher;
     qpid::sys::AbsTime expiration;
     boost::intrusive_ptr<ExpiryPolicy> expiryPolicy;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Header.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Header.cpp?rev=1573546&r1=1573545&r2=1573546&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Header.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Header.cpp Mon Mar  3 12:46:30 2014
@@ -51,7 +51,7 @@ uint32_t Header::getTtl() const
 
 bool Header::isFirstAcquirer() const
 {
-    return false;//TODO
+    return (!message.hasBeenAcquired());
 }
 
 uint32_t Header::getDeliveryCount() const



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