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