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