diff options
Diffstat (limited to 'cpp/src/qpid/broker/PersistableMessage.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/PersistableMessage.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/PersistableMessage.cpp b/cpp/src/qpid/broker/PersistableMessage.cpp index 2ef9fbfcbb..4645e5526d 100644 --- a/cpp/src/qpid/broker/PersistableMessage.cpp +++ b/cpp/src/qpid/broker/PersistableMessage.cpp @@ -23,6 +23,7 @@ #include "qpid/broker/PersistableMessage.h" //#include "qpid/broker/MessageStore.h" //#include "qpid/broker/AsyncStore.h" +#include "qpid/broker/EnqueueHandle.h" #include <iostream> using namespace qpid::broker; @@ -83,6 +84,44 @@ void PersistableMessage::dequeueAsync(PersistableQueue::shared_ptr, AsyncStore*) bool PersistableMessage::isDequeueComplete() { return false; } void PersistableMessage::dequeueComplete() {} +MessageHandle& PersistableMessage::createMessageHandle(AsyncStore* const store) { + assert (store != 0); + msgHandle = store->createMessageHandle(this); + return msgHandle; +} + +EnqueueHandle& PersistableMessage::createEnqueueHandle(QueueHandle& queueHandle, AsyncStore* const asyncStore) { + std::map<QueueHandle, EnqueueHandle>::iterator ehi = enqueueHandles.find(queueHandle); + if (ehi == enqueueHandles.end()) { + assert (asyncStore != 0); + ehi = enqueueHandles.insert(std::pair<QueueHandle, EnqueueHandle>(queueHandle, + asyncStore->createEnqueueHandle(msgHandle, queueHandle))).first; + } + return ehi->second; +} + +void PersistableMessage::removeEnqueueHandle(QueueHandle& queueHandle) { + std::map<QueueHandle, EnqueueHandle>::iterator ehi = enqueueHandles.find(queueHandle); + if (ehi != enqueueHandles.end()) { + enqueueHandles.erase(ehi); + } +} + +EnqueueHandle& PersistableMessage::getEnqueueHandle(QueueHandle& queueHandle) { + std::map<QueueHandle, EnqueueHandle>::iterator ehi = enqueueHandles.find(queueHandle); + assert (ehi != enqueueHandles.end()); + return ehi->second; +} + +const EnqueueHandle& PersistableMessage::getEnqueueHandle(QueueHandle& queueHandle) const { + std::map<QueueHandle, EnqueueHandle>::const_iterator ehci = enqueueHandles.find(queueHandle); + assert (ehci != enqueueHandles.end()); + return ehci->second; +} + +uint64_t PersistableMessage::getSize() { return 0; } // TODO: kpvdr: implement +void PersistableMessage::write(char* /*target*/) {} // TODO: kpvdr: implement + }} |
