diff options
| author | Gordon Sim <gsim@apache.org> | 2013-09-04 17:00:45 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-09-04 17:00:45 +0000 |
| commit | fe743a0889c2b9aede7e449de12fe554fbf194dd (patch) | |
| tree | 843dbe67fb0ac20fba93722df2af08642c861342 /qpid/cpp/src | |
| parent | 4a00c2ea7b4cb66165092598508e2d12ac04d9b0 (diff) | |
| download | qpid-python-fe743a0889c2b9aede7e449de12fe554fbf194dd.tar.gz | |
QPID-5110: don't lose track of correct index even in the face of incorrectly typed properties
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1520066 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/amqp/MessageReader.cpp | 64 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/amqp/MessageReader.h | 14 |
2 files changed, 78 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/amqp/MessageReader.cpp b/qpid/cpp/src/qpid/amqp/MessageReader.cpp index 42faf9d08b..70374f4cd6 100644 --- a/qpid/cpp/src/qpid/amqp/MessageReader.cpp +++ b/qpid/cpp/src/qpid/amqp/MessageReader.cpp @@ -185,6 +185,70 @@ void MessageReader::PropertiesReader::onNull(const Descriptor*) { ++index; } +void MessageReader::PropertiesReader::onBoolean(bool, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (boolean)"); + ++index; +} +void MessageReader::PropertiesReader::onUByte(uint8_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (ubyte)"); + ++index; +} +void MessageReader::PropertiesReader::onUShort(uint16_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (ushort)"); + ++index; +} +void MessageReader::PropertiesReader::onByte(int8_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (byte)"); + ++index; +} +void MessageReader::PropertiesReader::onShort(int16_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (short)"); + ++index; +} +void MessageReader::PropertiesReader::onInt(int32_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (int)"); + ++index; +} +void MessageReader::PropertiesReader::onLong(int64_t, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (long)"); + ++index; +} +void MessageReader::PropertiesReader::onFloat(float, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (float)"); + ++index; +} +void MessageReader::PropertiesReader::onDouble(double, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (double)"); + ++index; +} +bool MessageReader::PropertiesReader::onStartList(uint32_t /*count*/, const CharSequence& /*elements*/, const CharSequence& /*complete*/, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (list)"); + ++index; + return false; +} +bool MessageReader::PropertiesReader::onStartMap(uint32_t /*count*/, const CharSequence& /*elements*/, const CharSequence& /*complete*/, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (map)"); + ++index; + return false; +} +bool MessageReader::PropertiesReader::onStartArray(uint32_t /*count*/, const CharSequence&, const Constructor&, const Descriptor*) +{ + QPID_LOG(info, "skipping message property at index " << index << " unexpected type (array)"); + ++index; + return false; +} + //header, properties, amqp-sequence, amqp-value bool MessageReader::onStartList(uint32_t count, const CharSequence& elements, const CharSequence& raw, const Descriptor* descriptor) diff --git a/qpid/cpp/src/qpid/amqp/MessageReader.h b/qpid/cpp/src/qpid/amqp/MessageReader.h index d4627d2aa5..4e2248070b 100644 --- a/qpid/cpp/src/qpid/amqp/MessageReader.h +++ b/qpid/cpp/src/qpid/amqp/MessageReader.h @@ -133,6 +133,20 @@ class MessageReader : public Reader void onTimestamp(int64_t v, const Descriptor*); // absolute-expiry-time, creation-time void onUInt(uint32_t v, const Descriptor*); // group-sequence void onNull(const Descriptor*); + + void onBoolean(bool, const Descriptor*); + void onUByte(uint8_t, const Descriptor*); + void onUShort(uint16_t, const Descriptor*); + void onByte(int8_t, const Descriptor*); + void onShort(int16_t, const Descriptor*); + void onInt(int32_t, const Descriptor*); + void onLong(int64_t, const Descriptor*); + void onFloat(float, const Descriptor*); + void onDouble(double, const Descriptor*); + bool onStartList(uint32_t /*count*/, const CharSequence& /*elements*/, const CharSequence& /*complete*/, const Descriptor*); + bool onStartMap(uint32_t /*count*/, const CharSequence& /*elements*/, const CharSequence& /*complete*/, const Descriptor*); + bool onStartArray(uint32_t /*count*/, const CharSequence&, const Constructor&, const Descriptor*); + private: MessageReader& parent; size_t index; |
