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 2013/09/20 17:43:49 UTC

svn commit: r1525042 - in /qpid/trunk/qpid/cpp/src/qpid/broker: Message.cpp Message.h amqp/Incoming.cpp amqp/Incoming.h

Author: gsim
Date: Fri Sep 20 15:43:49 2013
New Revision: 1525042

URL: http://svn.apache.org/r1525042
Log:
QPID-5148: proper handling of ttl on 1.0 path

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/Incoming.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h

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=1525042&r1=1525041&r2=1525042&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.cpp Fri Sep 20 15:43:49 2013
@@ -145,7 +145,7 @@ uint64_t Message::getTtl() const
     }
 }
 
-bool Message::getTtl(uint64_t ttl) const
+bool Message::getTtl(uint64_t& ttl) const
 {
     if (encoding->getTtl(ttl) && expiration < FAR_FUTURE) {
         sys::Duration remaining(sys::AbsTime::now(), getExpiration());

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=1525042&r1=1525041&r2=1525042&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/Message.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Message.h Fri Sep 20 15:43:49 2013
@@ -104,7 +104,7 @@ public:
     sys::AbsTime getExpiration() const { return expiration; }
     void setExpiration(sys::AbsTime exp) { expiration = exp; }
     uint64_t getTtl() const;
-    QPID_BROKER_EXTERN bool getTtl(uint64_t) const;
+    QPID_BROKER_EXTERN bool getTtl(uint64_t&) const;
 
     /** set the timestamp delivery property to the current time-of-day */
     QPID_BROKER_EXTERN void setTimestamp();

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp?rev=1525042&r1=1525041&r2=1525042&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp Fri Sep 20 15:43:49 2013
@@ -25,6 +25,7 @@
 #include "qpid/amqp/descriptors.h"
 #include "qpid/broker/AsyncCompletion.h"
 #include "qpid/broker/Message.h"
+#include "qpid/broker/Broker.h"
 
 namespace qpid {
 namespace broker {
@@ -104,7 +105,7 @@ namespace {
 }
 
 DecodingIncoming::DecodingIncoming(pn_link_t* link, Broker& broker, Session& parent, const std::string& source, const std::string& target, const std::string& name)
-    : Incoming(link, broker, parent, source, target, name), session(parent.shared_from_this()) {}
+    : Incoming(link, broker, parent, source, target, name), session(parent.shared_from_this()), expiryPolicy(broker.getExpiryPolicy()) {}
 DecodingIncoming::~DecodingIncoming() {}
 
 void DecodingIncoming::readable(pn_delivery_t* delivery)
@@ -116,6 +117,7 @@ void DecodingIncoming::readable(pn_deliv
 
     qpid::broker::Message message(received, received);
     userid.verify(message.getUserId());
+    message.computeExpiration(expiryPolicy);
     handle(message);
     --window;
     received->begin();

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h?rev=1525042&r1=1525041&r2=1525042&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.h Fri Sep 20 15:43:49 2013
@@ -77,6 +77,7 @@ class DecodingIncoming : public Incoming
     virtual void handle(qpid::broker::Message&) = 0;
   private:
     boost::shared_ptr<Session> session;
+    boost::intrusive_ptr<ExpiryPolicy> expiryPolicy;
 };
 
 }}} // namespace qpid::broker::amqp



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