diff options
| author | Kim van der Riet <kpvdr@apache.org> | 2009-09-14 15:20:13 +0000 |
|---|---|---|
| committer | Kim van der Riet <kpvdr@apache.org> | 2009-09-14 15:20:13 +0000 |
| commit | 683a5677a37def4ed3c564fbebfe8951bcf86142 (patch) | |
| tree | 5ebe32fcb4a61f32eb12c64e05eceb402d8b5300 /cpp/src/qpid/broker/PersistableMessage.cpp | |
| parent | d84a5a7e693922fbb18d7db020c28be8471f11e3 (diff) | |
| download | qpid-python-683a5677a37def4ed3c564fbebfe8951bcf86142.tar.gz | |
Reversed checkin of r.813825 until its problems can be resolved
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@814692 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/PersistableMessage.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/PersistableMessage.cpp | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/cpp/src/qpid/broker/PersistableMessage.cpp b/cpp/src/qpid/broker/PersistableMessage.cpp index dc855315db..2ef223aa81 100644 --- a/cpp/src/qpid/broker/PersistableMessage.cpp +++ b/cpp/src/qpid/broker/PersistableMessage.cpp @@ -7,9 +7,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -22,7 +22,6 @@ #include "qpid/broker/PersistableMessage.h" #include "qpid/broker/MessageStore.h" -#include "qpid/broker/NullMessageStore.h" #include <iostream> using namespace qpid::broker; @@ -35,8 +34,9 @@ class MessageStore; PersistableMessage::~PersistableMessage() {} PersistableMessage::PersistableMessage() : - asyncEnqueueCounter(0), + asyncEnqueueCounter(0), asyncDequeueCounter(0), + contentReleased(false), store(0) {} @@ -56,22 +56,13 @@ void PersistableMessage::flush() if (q) { store->flush(*q); } - } + } } -void PersistableMessage::setContentReleased() { releaseMgr.setReleased(); } - -void PersistableMessage::blockRelease() { releaseMgr.blockRelease(); } - -bool PersistableMessage::requestContentRelease() -{ - if (!store || NullMessageStore::isNullStore(store) || releaseMgr.isReleaseBlocked()) return false; - releaseMgr.setReleaseRequested(); - return true; -} - -bool PersistableMessage::isContentReleased()const { return releaseMgr.isReleased(); } +void PersistableMessage::setContentReleased() {contentReleased = true; } +bool PersistableMessage::isContentReleased()const { return contentReleased; } + bool PersistableMessage::isEnqueueComplete() { sys::ScopedLock<sys::Mutex> l(asyncEnqueueLock); return asyncEnqueueCounter == 0; @@ -94,8 +85,8 @@ void PersistableMessage::enqueueComplete() { for (syncList::iterator i = synclist.begin(); i != synclist.end(); ++i) { PersistableQueue::shared_ptr q(i->lock()); if (q) q->notifyDurableIOComplete(); - } - } + } + } } } @@ -104,13 +95,13 @@ bool PersistableMessage::isStoredOnQueue(PersistableQueue::shared_ptr queue){ for (syncList::iterator i = synclist.begin(); i != synclist.end(); ++i) { PersistableQueue::shared_ptr q(i->lock()); if (q && q->getPersistenceId() == queue->getPersistenceId()) return true; - } - } + } + } return false; } -void PersistableMessage::addToSyncList(PersistableQueue::shared_ptr queue, MessageStore* _store) { +void PersistableMessage::addToSyncList(PersistableQueue::shared_ptr queue, MessageStore* _store) { if (_store){ sys::ScopedLock<sys::Mutex> l(storeLock); store = _store; @@ -119,22 +110,22 @@ void PersistableMessage::addToSyncList(PersistableQueue::shared_ptr queue, Messa } } -void PersistableMessage::enqueueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { +void PersistableMessage::enqueueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { addToSyncList(queue, _store); enqueueAsync(); } -void PersistableMessage::enqueueAsync() { +void PersistableMessage::enqueueAsync() { sys::ScopedLock<sys::Mutex> l(asyncEnqueueLock); - asyncEnqueueCounter++; + asyncEnqueueCounter++; } -bool PersistableMessage::isDequeueComplete() { +bool PersistableMessage::isDequeueComplete() { sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); return asyncDequeueCounter == 0; } - -void PersistableMessage::dequeueComplete() { + +void PersistableMessage::dequeueComplete() { bool notify = false; { sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); @@ -147,7 +138,7 @@ void PersistableMessage::dequeueComplete() { if (notify) allDequeuesComplete(); } -void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { +void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, MessageStore* _store) { if (_store){ sys::ScopedLock<sys::Mutex> l(storeLock); store = _store; @@ -157,9 +148,9 @@ void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr queue, Messag dequeueAsync(); } -void PersistableMessage::dequeueAsync() { +void PersistableMessage::dequeueAsync() { sys::ScopedLock<sys::Mutex> l(asyncDequeueLock); - asyncDequeueCounter++; + asyncDequeueCounter++; } }} |
