summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/lib/common/framing/Value.cpp5
-rw-r--r--cpp/lib/common/framing/Value.h8
2 files changed, 13 insertions, 0 deletions
diff --git a/cpp/lib/common/framing/Value.cpp b/cpp/lib/common/framing/Value.cpp
index d193286636..9b1f3bbc94 100644
--- a/cpp/lib/common/framing/Value.cpp
+++ b/cpp/lib/common/framing/Value.cpp
@@ -85,6 +85,11 @@ std::auto_ptr<Value> Value::decode_value(Buffer& buffer)
case 'F':
value.reset(new FieldTableValue());
break;
+
+ //non-standard types, introduced in java client for JMS compliance
+ case 'x':
+ value.reset(new BinaryValue());
+ break;
default:
std::stringstream out;
out << "Unknown field table value type: " << type;
diff --git a/cpp/lib/common/framing/Value.h b/cpp/lib/common/framing/Value.h
index 6d240c2eb9..e7ae865a70 100644
--- a/cpp/lib/common/framing/Value.h
+++ b/cpp/lib/common/framing/Value.h
@@ -158,6 +158,14 @@ class EmptyValue : public Value {
virtual void print(std::ostream& out) const;
};
+//non-standard types, introduced in java client for JMS compliance
+class BinaryValue : public StringValue {
+ public:
+ BinaryValue(const std::string& v) : StringValue(v) {}
+ BinaryValue() {}
+ virtual char getType() const { return 'x'; }
+};
+
}} // qpid::framing
#endif