You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2013/09/04 19:00:46 UTC
svn commit: r1520066 - in /qpid/trunk/qpid/cpp/src/qpid/amqp:
MessageReader.cpp MessageReader.h
Author: gsim
Date: Wed Sep 4 17:00:45 2013
New Revision: 1520066
URL: http://svn.apache.org/r1520066
Log:
QPID-5110: don't lose track of correct index even in the face of incorrectly typed properties
Modified:
qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.cpp
qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.h
Modified: qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.cpp?rev=1520066&r1=1520065&r2=1520066&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.cpp Wed Sep 4 17:00:45 2013
@@ -185,6 +185,70 @@ void MessageReader::PropertiesReader::on
{
++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)
Modified: qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.h?rev=1520066&r1=1520065&r2=1520066&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/amqp/MessageReader.h Wed Sep 4 17:00:45 2013
@@ -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;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org