summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/PersistableMessage.cpp
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2009-09-14 15:20:13 +0000
committerKim van der Riet <kpvdr@apache.org>2009-09-14 15:20:13 +0000
commit683a5677a37def4ed3c564fbebfe8951bcf86142 (patch)
tree5ebe32fcb4a61f32eb12c64e05eceb402d8b5300 /cpp/src/qpid/broker/PersistableMessage.cpp
parentd84a5a7e693922fbb18d7db020c28be8471f11e3 (diff)
downloadqpid-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.cpp53
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++;
}
}}