summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/framing
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-04-14 16:56:35 +0000
committerGordon Sim <gsim@apache.org>2008-04-14 16:56:35 +0000
commit6fde75b10b8d71a06fcf7ae6026473b4693165f5 (patch)
treeeef33ca733d3c5cf0430f5f7fedfe0f59b71aa8d /cpp/src/qpid/framing
parentdcaa8582a323d445fee5fdb46a25f2bcf3f89d58 (diff)
downloadqpid-python-6fde75b10b8d71a06fcf7ae6026473b4693165f5.tar.gz
Use the errata file for final 0-10 that has a type code for xids without which dtx.recover can't work.
Return the indoubt xids as an array of struct32s each of which contains an encoded xid. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@647903 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing')
-rw-r--r--cpp/src/qpid/framing/FieldValue.cpp8
-rw-r--r--cpp/src/qpid/framing/FieldValue.h6
2 files changed, 14 insertions, 0 deletions
diff --git a/cpp/src/qpid/framing/FieldValue.cpp b/cpp/src/qpid/framing/FieldValue.cpp
index cbda061209..8171a94ef2 100644
--- a/cpp/src/qpid/framing/FieldValue.cpp
+++ b/cpp/src/qpid/framing/FieldValue.cpp
@@ -119,6 +119,14 @@ Str16Value::Str16Value(const std::string& v) :
reinterpret_cast<const uint8_t*>(v.data()+v.size())))
{}
+Struct32Value::Struct32Value(const std::string& v) :
+ FieldValue(
+ 0xAB,
+ new VariableWidthValue<4>(
+ reinterpret_cast<const uint8_t*>(v.data()),
+ reinterpret_cast<const uint8_t*>(v.data()+v.size())))
+{}
+
IntegerValue::IntegerValue(int v) :
FieldValue(0x21, new FixedWidthValue<4>(v))
{
diff --git a/cpp/src/qpid/framing/FieldValue.h b/cpp/src/qpid/framing/FieldValue.h
index 272670d102..d7efc4d22d 100644
--- a/cpp/src/qpid/framing/FieldValue.h
+++ b/cpp/src/qpid/framing/FieldValue.h
@@ -212,6 +212,12 @@ class Str16Value : public FieldValue {
Str16Value(const std::string& v);
};
+class Struct32Value : public FieldValue {
+ public:
+ Struct32Value(const std::string& v);
+};
+
+
/*
* Basic integer value encodes as signed 32 bit
*/