summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/MessageBuilder.cpp
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2010-04-15 15:57:46 +0000
committerKim van der Riet <kpvdr@apache.org>2010-04-15 15:57:46 +0000
commit0d368a574d1898a1dc7ec04847728d63ce74ee5e (patch)
tree8d4b3b05faa0c1d4456031423911c3cb974beff1 /cpp/src/qpid/broker/MessageBuilder.cpp
parent60da39342e42ebd137853034d786220edcd88b0b (diff)
downloadqpid-python-0d368a574d1898a1dc7ec04847728d63ce74ee5e.tar.gz
Implementation of QPID-2509 (Remove message staging from C++ broker)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@934463 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageBuilder.cpp')
-rw-r--r--cpp/src/qpid/broker/MessageBuilder.cpp23
1 files changed, 3 insertions, 20 deletions
diff --git a/cpp/src/qpid/broker/MessageBuilder.cpp b/cpp/src/qpid/broker/MessageBuilder.cpp
index b1a2b77b05..a6d605c296 100644
--- a/cpp/src/qpid/broker/MessageBuilder.cpp
+++ b/cpp/src/qpid/broker/MessageBuilder.cpp
@@ -36,8 +36,8 @@ namespace
const std::string QPID_MANAGEMENT("qpid.management");
}
-MessageBuilder::MessageBuilder(MessageStore* const _store, uint64_t _stagingThreshold) :
- state(DORMANT), store(_store), stagingThreshold(_stagingThreshold), staging(false) {}
+MessageBuilder::MessageBuilder(MessageStore* const _store) :
+ state(DORMANT), store(_store) {}
void MessageBuilder::handle(AMQFrame& frame)
{
@@ -68,29 +68,13 @@ void MessageBuilder::handle(AMQFrame& frame)
default:
throw CommandInvalidException(QPID_MSG("Invalid frame sequence for message (state=" << state << ")"));
}
- if (staging) {
- intrusive_ptr<const PersistableMessage> cpmsg = boost::static_pointer_cast<const PersistableMessage>(message);
- store->appendContent(cpmsg, frame.castBody<AMQContentBody>()->getData());
- } else {
- message->getFrames().append(frame);
- //have we reached the staging limit? if so stage message and release content
- if (state == CONTENT
- && stagingThreshold
- && message->getFrames().getContentSize() >= stagingThreshold
- && !NullMessageStore::isNullStore(store)
- && message->getExchangeName() != QPID_MANAGEMENT /* don't stage mgnt messages */)
- {
- message->releaseContent();
- staging = true;
- }
- }
+ message->getFrames().append(frame);
}
void MessageBuilder::end()
{
message = 0;
state = DORMANT;
- staging = false;
}
void MessageBuilder::start(const SequenceNumber& id)
@@ -98,7 +82,6 @@ void MessageBuilder::start(const SequenceNumber& id)
message = intrusive_ptr<Message>(new Message(id));
message->setStore(store);
state = METHOD;
- staging = false;
}
namespace {