diff options
| author | Gordon Sim <gsim@apache.org> | 2008-03-04 20:42:19 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2008-03-04 20:42:19 +0000 |
| commit | d47950ff7a88e4684d1e07e334e705776ed569a7 (patch) | |
| tree | 23f00efd6c9009f158c0b9643746dd16fd8adbf6 /cpp/src/qpid/broker/MessageBuilder.cpp | |
| parent | cf9a1617599bb680deef2bab76fc6022f7dad50b (diff) | |
| download | qpid-python-d47950ff7a88e4684d1e07e334e705776ed569a7.tar.gz | |
Further updates to support final 0-10 spec
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633627 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/MessageBuilder.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/MessageBuilder.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/MessageBuilder.cpp b/cpp/src/qpid/broker/MessageBuilder.cpp index 376a321d2d..269fc2d423 100644 --- a/cpp/src/qpid/broker/MessageBuilder.cpp +++ b/cpp/src/qpid/broker/MessageBuilder.cpp @@ -28,6 +28,10 @@ using namespace qpid::broker; using namespace qpid::framing; +namespace +{ + std::string type_str(uint8_t type); +} MessageBuilder::MessageBuilder(MessageStore* const _store, uint64_t _stagingThreshold) : state(DORMANT), store(_store), stagingThreshold(_stagingThreshold), staging(false) {} @@ -39,7 +43,19 @@ void MessageBuilder::handle(AMQFrame& frame) state = HEADER; break; case HEADER: - checkType(HEADER_BODY, frame.getBody()->type()); + switch (frame.getBody()->type()) { + case CONTENT_BODY: + //TODO: rethink how to handle non-existent headers... + //didn't get a header: add in a dummy + message->getFrames().append(AMQFrame(AMQHeaderBody())); + break; + case HEADER_BODY: + break; + default: + throw CommandInvalidException( + QPID_MSG("Invalid frame sequence for message, expected header or content got " + << type_str(frame.getBody()->type()) << ")")); + } state = CONTENT; break; case CONTENT: |
