From 298f6aa34e0cd07e0d89016990bd9c21902c811d Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Wed, 3 Jun 2009 16:08:33 +0000 Subject: Ensure that ring queue behaves as expected when replicated to newly joined cluster node. Altered queueDurabilityPropagationToNewbie test to not use in-process broker to fix error caused by linking change. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781454 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/QueuePolicy.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/broker/QueuePolicy.cpp') diff --git a/cpp/src/qpid/broker/QueuePolicy.cpp b/cpp/src/qpid/broker/QueuePolicy.cpp index c59736969f..43d914fc42 100644 --- a/cpp/src/qpid/broker/QueuePolicy.cpp +++ b/cpp/src/qpid/broker/QueuePolicy.cpp @@ -187,11 +187,17 @@ bool FlowToDiskPolicy::checkLimit(const QueuedMessage& m) RingQueuePolicy::RingQueuePolicy(uint32_t _maxCount, uint64_t _maxSize, const std::string& _type) : QueuePolicy(_maxCount, _maxSize, _type), strict(_type == RING_STRICT) {} +bool before(const QueuedMessage& a, const QueuedMessage& b) +{ + return a.position < b.position; +} + void RingQueuePolicy::enqueued(const QueuedMessage& m) { QueuePolicy::enqueued(m); qpid::sys::Mutex::ScopedLock l(lock); - queue.push_back(m); + //need to insert in correct location based on position + queue.insert(lower_bound(queue.begin(), queue.end(), m, before), m); } void RingQueuePolicy::dequeued(const QueuedMessage& m) -- cgit v1.2.1