summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/SessionAdapter.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-04-09 17:59:38 +0000
committerGordon Sim <gsim@apache.org>2008-04-09 17:59:38 +0000
commit363ed6d7e6a0986c49a9ae5d43954dfec08e7e8c (patch)
tree160ff8c184660acfad6b2905a8a3e4f00ad25e18 /cpp/src/qpid/broker/SessionAdapter.cpp
parentedaf94463aedcbe52870213b1e1db39ecf741731 (diff)
downloadqpid-python-363ed6d7e6a0986c49a9ae5d43954dfec08e7e8c.tar.gz
Handle the set-redelivered flag on the final version of the message.release command.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@646452 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/SessionAdapter.cpp')
-rw-r--r--cpp/src/qpid/broker/SessionAdapter.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/cpp/src/qpid/broker/SessionAdapter.cpp b/cpp/src/qpid/broker/SessionAdapter.cpp
index d30a1dc696..8093c7c174 100644
--- a/cpp/src/qpid/broker/SessionAdapter.cpp
+++ b/cpp/src/qpid/broker/SessionAdapter.cpp
@@ -298,7 +298,8 @@ void SessionAdapter::QueueHandlerImpl::delete_(const string& queue, bool ifUnuse
SessionAdapter::MessageHandlerImpl::MessageHandlerImpl(SemanticState& s) :
HandlerHelper(s),
- releaseOp(boost::bind(&SemanticState::release, &state, _1, _2)),
+ releaseRedeliveredOp(boost::bind(&SemanticState::release, &state, _1, _2, true)),
+ releaseOp(boost::bind(&SemanticState::release, &state, _1, _2, false)),
rejectOp(boost::bind(&SemanticState::reject, &state, _1, _2)),
acceptOp(boost::bind(&SemanticState::accepted, &state, _1, _2))
{}
@@ -314,9 +315,9 @@ void SessionAdapter::MessageHandlerImpl::transfer(const string& /*destination*/,
//not yet used (content containing assemblies treated differently at present
}
- void SessionAdapter::MessageHandlerImpl::release(const SequenceSet& transfers, bool /*setRedelivered*/)
+void SessionAdapter::MessageHandlerImpl::release(const SequenceSet& transfers, bool setRedelivered)
{
- transfers.for_each(releaseOp);
+ transfers.for_each(setRedelivered ? releaseRedeliveredOp : releaseOp);
}
void