summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing/AMQFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/framing/AMQFrame.cpp')
-rw-r--r--cpp/src/qpid/framing/AMQFrame.cpp38
1 files changed, 8 insertions, 30 deletions
diff --git a/cpp/src/qpid/framing/AMQFrame.cpp b/cpp/src/qpid/framing/AMQFrame.cpp
index d863970ece..cd60cd971f 100644
--- a/cpp/src/qpid/framing/AMQFrame.cpp
+++ b/cpp/src/qpid/framing/AMQFrame.cpp
@@ -32,12 +32,7 @@
namespace qpid {
namespace framing {
-void AMQFrame::init() {
- bof = eof = bos = eos = true;
- subchannel=0;
- channel=0;
- encodedSizeCache = 0;
-}
+void AMQFrame::init() { bof = eof = bos = eos = true; subchannel=0; channel=0; }
AMQFrame::AMQFrame(const boost::intrusive_ptr<AMQBody>& b) : body(b) { init(); }
@@ -45,28 +40,13 @@ AMQFrame::AMQFrame(const AMQBody& b) : body(b.clone()) { init(); }
AMQFrame::~AMQFrame() {}
-AMQBody* AMQFrame::getBody() {
- // Non-const AMQBody* may be used to modify the body.
- encodedSizeCache = 0;
- return body.get();
-}
-
-const AMQBody* AMQFrame::getBody() const {
- return body.get();
-}
-
-void AMQFrame::setMethod(ClassId c, MethodId m) {
- encodedSizeCache = 0;
- body = MethodBodyFactory::create(c,m);
-}
+void AMQFrame::setMethod(ClassId c, MethodId m) { body = MethodBodyFactory::create(c,m); }
uint32_t AMQFrame::encodedSize() const {
- if (!encodedSizeCache) {
- encodedSizeCache = frameOverhead() + body->encodedSize();
- if (body->getMethod())
- encodedSizeCache += sizeof(ClassId)+sizeof(MethodId);
- }
- return encodedSizeCache;
+ uint32_t size = frameOverhead() + body->encodedSize();
+ if (body->getMethod())
+ size += sizeof(ClassId)+sizeof(MethodId);
+ return size;
}
uint32_t AMQFrame::frameOverhead() {
@@ -102,13 +82,11 @@ void AMQFrame::encode(Buffer& buffer) const
}
bool AMQFrame::decode(Buffer& buffer)
-{
+{
if(buffer.available() < frameOverhead())
return false;
buffer.record();
- encodedSizeCache = 0;
- uint32_t start = buffer.getPosition();
uint8_t flags = buffer.getOctet();
uint8_t framing_version = (flags & 0xc0) >> 6;
if (framing_version != 0)
@@ -157,7 +135,7 @@ bool AMQFrame::decode(Buffer& buffer)
throw IllegalArgumentException(QPID_MSG("Invalid frame type " << type));
}
body->decode(buffer, body_size);
- encodedSizeCache = buffer.getPosition() - start;
+
return true;
}