From 29df9f56808094b0009eb9d04c71d1d51f4e10a5 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Thu, 5 Jun 2008 22:01:32 +0000 Subject: Dequeue persistent messages from store in queue purge git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@663755 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Queue.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cpp') diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp index 1eeb1fb7f8..08af97eb48 100644 --- a/cpp/src/qpid/broker/Queue.cpp +++ b/cpp/src/qpid/broker/Queue.cpp @@ -387,7 +387,15 @@ QueuedMessage Queue::dequeue(){ uint32_t Queue::purge(){ Mutex::ScopedLock locker(messageLock); int count = messages.size(); - while(!messages.empty()) pop(); + while(!messages.empty()) { + QueuedMessage& msg = messages.front(); + if (store && msg.payload->isPersistent()) { + boost::intrusive_ptr pmsg = + boost::static_pointer_cast(msg.payload); + store->dequeue(0, pmsg, *this); + } + pop(); + } return count; } -- cgit v1.2.1