summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2009-12-16 18:22:11 +0000
committerKim van der Riet <kpvdr@apache.org>2009-12-16 18:22:11 +0000
commitb094cc97df783ad9b426eba2c38deecf353d1d79 (patch)
tree4f9a291ebefe1c6a4e154d3645f6b57bd9ed8b8a
parentbb4fb425a88b5b565e7d7d767f24f770f415692c (diff)
downloadqpid-python-b094cc97df783ad9b426eba2c38deecf353d1d79.tar.gz
Added methods to set the message redelivered flag upon recovery
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@891362 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/broker/RecoverableMessage.h1
-rw-r--r--qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp6
2 files changed, 7 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/broker/RecoverableMessage.h b/qpid/cpp/src/qpid/broker/RecoverableMessage.h
index f755fdf727..c98857ceb0 100644
--- a/qpid/cpp/src/qpid/broker/RecoverableMessage.h
+++ b/qpid/cpp/src/qpid/broker/RecoverableMessage.h
@@ -37,6 +37,7 @@ class RecoverableMessage
public:
typedef boost::shared_ptr<RecoverableMessage> shared_ptr;
virtual void setPersistenceId(uint64_t id) = 0;
+ virtual void setRedelivered() = 0;
/**
* Used by store to determine whether to load content on recovery
* or let message load its own content as and when it requires it.
diff --git a/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp b/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp
index 0369fcd71d..12ac2d2bfd 100644
--- a/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp
+++ b/qpid/cpp/src/qpid/broker/RecoveryManagerImpl.cpp
@@ -48,6 +48,7 @@ public:
RecoverableMessageImpl(const intrusive_ptr<Message>& _msg, uint64_t _stagingThreshold);
~RecoverableMessageImpl() {};
void setPersistenceId(uint64_t id);
+ void setRedelivered();
bool loadContent(uint64_t available);
void decodeContent(framing::Buffer& buffer);
void recover(Queue::shared_ptr queue);
@@ -187,6 +188,11 @@ void RecoverableMessageImpl::setPersistenceId(uint64_t id)
msg->setPersistenceId(id);
}
+void RecoverableMessageImpl::setRedelivered()
+{
+ msg->redeliver();
+}
+
void RecoverableQueueImpl::recover(RecoverableMessage::shared_ptr msg)
{
dynamic_pointer_cast<RecoverableMessageImpl>(msg)->recover(queue);