summaryrefslogtreecommitdiff
path: root/qpid/cpp/lib/broker/BrokerMessageMessage.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-03-30 15:50:07 +0000
committerGordon Sim <gsim@apache.org>2007-03-30 15:50:07 +0000
commit72bca07ee53fb9476f268133f244d55d8f53d3b9 (patch)
tree6e8400200b22188899144a025ecb1a6c5922cc7b /qpid/cpp/lib/broker/BrokerMessageMessage.cpp
parent61c7761f005dacfc5938a4d4d25b7120a8e21620 (diff)
downloadqpid-python-72bca07ee53fb9476f268133f244d55d8f53d3b9.tar.gz
Refactored the MessageStore interface to restrict visibility of broker core from store implementations.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@524139 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/lib/broker/BrokerMessageMessage.cpp')
-rw-r--r--qpid/cpp/lib/broker/BrokerMessageMessage.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/qpid/cpp/lib/broker/BrokerMessageMessage.cpp b/qpid/cpp/lib/broker/BrokerMessageMessage.cpp
index a50375cdd3..73ad961938 100644
--- a/qpid/cpp/lib/broker/BrokerMessageMessage.cpp
+++ b/qpid/cpp/lib/broker/BrokerMessageMessage.cpp
@@ -29,6 +29,7 @@
#include "framing/AMQFrame.h"
#include "framing/FieldTable.h"
#include "framing/BasicHeaderProperties.h"
+#include "RecoveryManagerImpl.h"
#include <algorithm>
@@ -217,17 +218,17 @@ bool MessageMessage::isPersistent()
return transfer->getDeliveryMode() == PERSISTENT;
}
-uint32_t MessageMessage::encodedSize()
+uint32_t MessageMessage::encodedSize() const
{
return encodedHeaderSize() + encodedContentSize();
}
-uint32_t MessageMessage::encodedHeaderSize()
+uint32_t MessageMessage::encodedHeaderSize() const
{
- return transfer->size() - transfer->baseSize();
+ return RecoveryManagerImpl::encodedMessageTypeSize() + transfer->size() - transfer->baseSize();
}
-uint32_t MessageMessage::encodedContentSize()
+uint32_t MessageMessage::encodedContentSize() const
{
return 0;
}
@@ -237,13 +238,14 @@ uint64_t MessageMessage::expectedContentSize()
return 0;
}
-void MessageMessage::encode(Buffer& buffer)
+void MessageMessage::encode(Buffer& buffer) const
{
encodeHeader(buffer);
}
-void MessageMessage::encodeHeader(Buffer& buffer)
+void MessageMessage::encodeHeader(Buffer& buffer) const
{
+ RecoveryManagerImpl::encodeMessageType(*this, buffer);
if (transfer->getBody().isInline()) {
transfer->encodeContent(buffer);
} else {
@@ -259,6 +261,9 @@ void MessageMessage::encodeHeader(Buffer& buffer)
void MessageMessage::decodeHeader(Buffer& buffer)
{
+ //don't care about the type here, but want encode/decode to be symmetric
+ RecoveryManagerImpl::decodeMessageType(buffer);
+
transfer->decodeContent(buffer);
}
@@ -269,7 +274,7 @@ void MessageMessage::decodeContent(Buffer& /*buffer*/, uint32_t /*chunkSize*/)
MessageTransferBody* MessageMessage::copyTransfer(const ProtocolVersion& version,
const string& destination,
- const framing::Content& body)
+ const framing::Content& body) const
{
return new MessageTransferBody(version,
transfer->getTicket(),