diff options
author | Alan Conway <aconway@apache.org> | 2006-10-11 15:50:15 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2006-10-11 15:50:15 +0000 |
commit | 2bcadbb42a6fb2f096c1fc0a4b957d64a5024ef6 (patch) | |
tree | 886eb0659c6f28c2f1d26de7d5fd29fff0072dc5 /cpp/common/framing/src/AMQFrame.cpp | |
parent | 9fc2b6c5f0848d65f1bf20e62279c055d12a1d40 (diff) | |
download | qpid-python-2bcadbb42a6fb2f096c1fc0a4b957d64a5024ef6.tar.gz |
Turned up gcc warnings, fixed warnings in code, enabled -Werror.
Note: #include "qpid_test_plugin.h" instead of <cppunit/TestPlugin.h>
Works around warning from a cppunit macro.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@462834 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/common/framing/src/AMQFrame.cpp')
-rw-r--r-- | cpp/common/framing/src/AMQFrame.cpp | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/cpp/common/framing/src/AMQFrame.cpp b/cpp/common/framing/src/AMQFrame.cpp index 5686c9ac81..487ab1a443 100644 --- a/cpp/common/framing/src/AMQFrame.cpp +++ b/cpp/common/framing/src/AMQFrame.cpp @@ -63,33 +63,13 @@ bool AMQFrame::decode(Buffer& buffer) { if(buffer.available() < 7) return false; buffer.record(); - u_int8_t type = buffer.getOctet(); - channel = buffer.getShort(); - u_int32_t size = buffer.getLong(); - if(buffer.available() < size + 1){ + u_int32_t bufSize = decodeHead(buffer); + + if(buffer.available() < bufSize + 1){ buffer.restore(); return false; } - switch(type) - { - case METHOD_BODY: - body = createMethodBody(buffer); - break; - case HEADER_BODY: - body = AMQBody::shared_ptr(new AMQHeaderBody()); - break; - case CONTENT_BODY: - body = AMQBody::shared_ptr(new AMQContentBody()); - break; - case HEARTBEAT_BODY: - body = AMQBody::shared_ptr(new AMQHeartbeatBody()); - break; - default: - string msg("Unknown body type: "); - msg += type; - THROW_QPID_ERROR(FRAMING_ERROR, msg); - } - body->decode(buffer, size); + decodeBody(buffer, bufSize); u_int8_t end = buffer.getOctet(); if(end != 0xCE) THROW_QPID_ERROR(FRAMING_ERROR, "Frame end not found"); return true; @@ -101,7 +81,7 @@ u_int32_t AMQFrame::decodeHead(Buffer& buffer){ return buffer.getLong(); } -void AMQFrame::decodeBody(Buffer& buffer, uint32_t size) +void AMQFrame::decodeBody(Buffer& buffer, uint32_t bufSize) { switch(type) { @@ -122,7 +102,7 @@ void AMQFrame::decodeBody(Buffer& buffer, uint32_t size) msg += type; THROW_QPID_ERROR(FRAMING_ERROR, msg); } - body->decode(buffer, size); + body->decode(buffer, bufSize); } std::ostream& qpid::framing::operator<<(std::ostream& out, const AMQFrame& t){ |