diff options
Diffstat (limited to 'qpid/cpp')
-rw-r--r-- | qpid/cpp/include/qpid/framing/FieldTable.h | 4 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/management-types.xml | 2 | ||||
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Class.cpp | 1 | ||||
-rw-r--r-- | qpid/cpp/src/qmf/engine/Protocol.cpp | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qmf/engine/SchemaImpl.cpp | 3 | ||||
-rw-r--r-- | qpid/cpp/src/qmf/engine/ValueImpl.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/console/Broker.cpp | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/console/Schema.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/console/Value.cpp | 2 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/framing/FieldTable.cpp | 134 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/management/ManagementAgent.cpp | 6 |
12 files changed, 13 insertions, 155 deletions
diff --git a/qpid/cpp/include/qpid/framing/FieldTable.h b/qpid/cpp/include/qpid/framing/FieldTable.h index fd09cfc6f6..62b4a4bc08 100644 --- a/qpid/cpp/include/qpid/framing/FieldTable.h +++ b/qpid/cpp/include/qpid/framing/FieldTable.h @@ -63,10 +63,6 @@ class FieldTable QPID_COMMON_EXTERN void encode(Buffer& buffer) const; QPID_COMMON_EXTERN void decode(Buffer& buffer); - QPID_COMMON_EXTERN uint32_t qmfEncodedSize() const; - QPID_COMMON_EXTERN void qmfEncode(Buffer& buffer) const; - QPID_COMMON_EXTERN void qmfDecode(Buffer& buffer); - QPID_COMMON_EXTERN int count() const; QPID_COMMON_EXTERN void set(const std::string& name, const ValuePtr& value); QPID_COMMON_EXTERN ValuePtr get(const std::string& name) const; diff --git a/qpid/cpp/managementgen/qmfgen/management-types.xml b/qpid/cpp/managementgen/qmfgen/management-types.xml index e235920447..626880afb3 100644 --- a/qpid/cpp/managementgen/qmfgen/management-types.xml +++ b/qpid/cpp/managementgen/qmfgen/management-types.xml @@ -36,7 +36,7 @@ <type name="float" base="FLOAT" cpp="float" encode="@.putFloat(#)" decode="# = @.getFloat()" accessor="direct" init="0."/> <type name="double" base="DOUBLE" cpp="double" encode="@.putDouble(#)" decode="# = @.getDouble()" accessor="direct" init="0."/> <type name="uuid" base="UUID" cpp="::qpid::framing::Uuid" encode="#.encode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::Uuid()" byRef="y"/> -<type name="map" base="FTABLE" cpp="::qpid::framing::FieldTable" encode="#.qmfEncode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::FieldTable()" byRef="y"/> +<type name="map" base="FTABLE" cpp="::qpid::framing::FieldTable" encode="#.encode(@)" decode="#.decode(@)" accessor="direct" init="::qpid::framing::FieldTable()" byRef="y"/> <type name="hilo8" base="U8" cpp="uint8_t" encode="@.putOctet(#)" decode="# = @.getOctet()" style="wm" accessor="counter" init="0"/> <type name="hilo16" base="U16" cpp="uint16_t" encode="@.putShort(#)" decode="# = @.getShort()" style="wm" accessor="counter" init="0"/> diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp index 52ffce0eb4..973d92586a 100644 --- a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp +++ b/qpid/cpp/managementgen/qmfgen/templates/Class.cpp @@ -98,7 +98,6 @@ void /*MGEN:Class.NameCap*/::writeSchema (Buffer& buf) buf.putShortString (packageName); // Package Name buf.putShortString (className); // Class Name buf.putBin128 (md5Sum); // Schema Hash - buf.putOctet (0); // No Superclass buf.putShort (/*MGEN:Class.ConfigCount*/); // Config Element Count buf.putShort (/*MGEN:Class.InstCount*/); // Inst Element Count buf.putShort (/*MGEN:Class.MethodCount*/); // Method Count diff --git a/qpid/cpp/src/qmf/engine/Protocol.cpp b/qpid/cpp/src/qmf/engine/Protocol.cpp index 6061b70a8d..9e5f490604 100644 --- a/qpid/cpp/src/qmf/engine/Protocol.cpp +++ b/qpid/cpp/src/qmf/engine/Protocol.cpp @@ -37,14 +37,14 @@ bool Protocol::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *seq) *opcode = buf.getOctet(); *seq = buf.getLong(); - return h1 == 'A' && h2 == 'M' && h3 == '3'; + return h1 == 'A' && h2 == 'M' && h3 == '2'; } void Protocol::encodeHeader(qpid::framing::Buffer& buf, uint8_t opcode, uint32_t seq) { buf.putOctet('A'); buf.putOctet('M'); - buf.putOctet('3'); + buf.putOctet('2'); buf.putOctet(opcode); buf.putLong (seq); } diff --git a/qpid/cpp/src/qmf/engine/SchemaImpl.cpp b/qpid/cpp/src/qmf/engine/SchemaImpl.cpp index e366a66826..c37ec34890 100644 --- a/qpid/cpp/src/qmf/engine/SchemaImpl.cpp +++ b/qpid/cpp/src/qmf/engine/SchemaImpl.cpp @@ -341,7 +341,6 @@ SchemaObjectClassImpl::SchemaObjectClassImpl(Buffer& buffer) : hasHash(true), cl buffer.getShortString(name); hash.decode(buffer); - /*uint8_t hasParentClass =*/ buffer.getOctet(); // TODO: Parse parent-class indicator uint16_t propCount = buffer.getShort(); uint16_t statCount = buffer.getShort(); uint16_t methodCount = buffer.getShort(); @@ -374,7 +373,7 @@ void SchemaObjectClassImpl::encode(Buffer& buffer) const buffer.putShortString(package); buffer.putShortString(name); hash.encode(buffer); - buffer.putOctet(0); // No parent class + //buffer.putOctet(0); // No parent class buffer.putShort((uint16_t) properties.size()); buffer.putShort((uint16_t) statistics.size()); buffer.putShort((uint16_t) methods.size()); diff --git a/qpid/cpp/src/qmf/engine/ValueImpl.cpp b/qpid/cpp/src/qmf/engine/ValueImpl.cpp index f80bdab866..1949d4b946 100644 --- a/qpid/cpp/src/qmf/engine/ValueImpl.cpp +++ b/qpid/cpp/src/qmf/engine/ValueImpl.cpp @@ -55,8 +55,6 @@ ValueImpl::ValueImpl(Typecode t, Buffer& buf) : typecode(t) case TYPE_MAP: ft.decode(buf); - // TODO: either update to recursively use QMF types or reduce to int/string/... - // (maybe use another ctor with a FieldValue argument) break; case TYPE_LIST: diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp index f9f39316e2..f84e158154 100644 --- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp @@ -564,7 +564,7 @@ void ManagementAgentImpl::encodeHeader(Buffer& buf, uint8_t opcode, uint32_t seq { buf.putOctet('A'); buf.putOctet('M'); - buf.putOctet('3'); + buf.putOctet('2'); buf.putOctet(opcode); buf.putLong (seq); } @@ -581,7 +581,7 @@ bool ManagementAgentImpl::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *se *opcode = buf.getOctet(); *seq = buf.getLong(); - return h1 == 'A' && h2 == 'M' && h3 == '3'; + return h1 == 'A' && h2 == 'M' && h3 == '2'; } ManagementAgentImpl::PackageMap::iterator ManagementAgentImpl::findOrAddPackage(const string& name) diff --git a/qpid/cpp/src/qpid/console/Broker.cpp b/qpid/cpp/src/qpid/console/Broker.cpp index 53776c1a12..d2ff8f819e 100644 --- a/qpid/cpp/src/qpid/console/Broker.cpp +++ b/qpid/cpp/src/qpid/console/Broker.cpp @@ -72,7 +72,7 @@ void Broker::encodeHeader(Buffer& buf, uint8_t opcode, uint32_t seq) const { buf.putOctet('A'); buf.putOctet('M'); - buf.putOctet('3'); + buf.putOctet('2'); buf.putOctet(opcode); buf.putLong (seq); } @@ -89,7 +89,7 @@ bool Broker::checkHeader(Buffer& buf, uint8_t *opcode, uint32_t *seq) const *opcode = buf.getOctet(); *seq = buf.getLong(); - return h1 == 'A' && h2 == 'M' && h3 == '3'; + return h1 == 'A' && h2 == 'M' && h3 == '2'; } void Broker::received(qpid::client::Message& msg) diff --git a/qpid/cpp/src/qpid/console/Schema.cpp b/qpid/cpp/src/qpid/console/Schema.cpp index 7efdc63ef0..a3dbd91201 100644 --- a/qpid/cpp/src/qpid/console/Schema.cpp +++ b/qpid/cpp/src/qpid/console/Schema.cpp @@ -119,7 +119,7 @@ SchemaClass::SchemaClass(const uint8_t _kind, const ClassKey& _key, framing::Buf kind(_kind), key(_key) { if (kind == KIND_TABLE) { - uint8_t hasSupertype = buffer.getOctet(); + uint8_t hasSupertype = 0; //buffer.getOctet(); uint16_t propCount = buffer.getShort(); uint16_t statCount = buffer.getShort(); uint16_t methodCount = buffer.getShort(); diff --git a/qpid/cpp/src/qpid/console/Value.cpp b/qpid/cpp/src/qpid/console/Value.cpp index 799892606a..c30660f1dc 100644 --- a/qpid/cpp/src/qpid/console/Value.cpp +++ b/qpid/cpp/src/qpid/console/Value.cpp @@ -114,7 +114,7 @@ string MapValue::str() const MapValue::MapValue(framing::Buffer& buffer) { - value.qmfDecode(buffer); + value.decode(buffer); } diff --git a/qpid/cpp/src/qpid/framing/FieldTable.cpp b/qpid/cpp/src/qpid/framing/FieldTable.cpp index 0a21bb2f35..e2e91e450a 100644 --- a/qpid/cpp/src/qpid/framing/FieldTable.cpp +++ b/qpid/cpp/src/qpid/framing/FieldTable.cpp @@ -53,23 +53,6 @@ uint32_t FieldTable::encodedSize() const { return len; } -uint32_t FieldTable::qmfEncodedSize() const { - uint32_t len(4/*size field*/ + 4/*count field*/); - for(ValueMap::const_iterator i = values.begin(); i != values.end(); ++i) { - // shortstr_len_byte + key size + typecode - len += 1 + (i->first).size() + 1; - ValuePtr value(i->second); - if (value->convertsTo<int>()) { - len += 4; - } else if (value->convertsTo<uint64_t>()) { - len += 8; - } else if (value->convertsTo<string>()) { - len += 2 + value->get<string>().size(); - } - } - return len; -} - int FieldTable::count() const { return values.size(); } @@ -232,123 +215,6 @@ void FieldTable::decode(Buffer& buffer){ } } -#define QMF_TYPE_U8 1 -#define QMF_TYPE_U16 2 -#define QMF_TYPE_U32 3 -#define QMF_TYPE_U64 4 -#define QMF_TYPE_SSTR 6 -#define QMF_TYPE_LSTR 7 -#define QMF_TYPE_ABSTIME 8 -#define QMF_TYPE_DELTATIME 9 -#define QMF_TYPE_REF 10 -#define QMF_TYPE_BOOL 11 -#define QMF_TYPE_FLOAT 12 -#define QMF_TYPE_DOUBLE 13 -#define QMF_TYPE_UUID 14 -#define QMF_TYPE_S8 16 -#define QMF_TYPE_S16 17 -#define QMF_TYPE_S32 18 -#define QMF_TYPE_S64 19 -#define QMF_TYPE_OBJECT 20 -#define QMF_TYPE_MAP 15 -#define QMF_TYPE_LIST 21 -#define QMF_TYPE_ARRAY 22 - -void FieldTable::qmfEncode(Buffer& buffer) const { - buffer.putLong(qmfEncodedSize() - 4); - buffer.putLong(values.size()); - for (ValueMap::const_iterator i = values.begin(); i!=values.end(); ++i) { - ValuePtr value(i->second); - buffer.putShortString(i->first); - if (value->convertsTo<int>()) { - buffer.putOctet(QMF_TYPE_S32); - buffer.putLong(value->get<int>()); - } else if (value->convertsTo<uint64_t>()) { - buffer.putOctet(QMF_TYPE_U64); - buffer.putLongLong(value->get<uint64_t>()); - } else if (value->convertsTo<string>()) { - buffer.putOctet(QMF_TYPE_LSTR); - buffer.putMediumString(value->get<string>()); - } - } -} - -void FieldTable::qmfDecode(Buffer& buffer) { - clear(); - uint32_t len = buffer.getLong(); - if (len) { - uint32_t available = buffer.available(); - if (available < len) - throw IllegalArgumentException(QPID_MSG("Not enough data for field table.")); - uint32_t count = buffer.getLong(); - uint32_t leftover = available - len; - while(buffer.available() > leftover && count--) { - std::string name; - std::string sstr; - std::string lstr; - buffer.getShortString(name); - uint8_t typecode = buffer.getOctet(); - switch (typecode) { - case QMF_TYPE_U8: - values[name] = ValuePtr(new IntegerValue(buffer.getOctet())); - break; - case QMF_TYPE_U16: - values[name] = ValuePtr(new IntegerValue(buffer.getShort())); - break; - case QMF_TYPE_U32: - values[name] = ValuePtr(new IntegerValue(buffer.getLong())); - break; - case QMF_TYPE_U64: - values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong())); - break; - case QMF_TYPE_SSTR: - buffer.getShortString(sstr); - values[name] = ValuePtr(new Str16Value(sstr)); - break; - case QMF_TYPE_LSTR: - buffer.getMediumString(lstr); - values[name] = ValuePtr(new Str16Value(lstr)); - break; - case QMF_TYPE_ABSTIME: - values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong())); - break; - case QMF_TYPE_DELTATIME: - values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong())); - break; - case QMF_TYPE_BOOL: - values[name] = ValuePtr(new IntegerValue(buffer.getOctet())); - break; - case QMF_TYPE_FLOAT: - values[name] = ValuePtr(new FloatValue(buffer.getFloat())); - break; - case QMF_TYPE_DOUBLE: - values[name] = ValuePtr(new DoubleValue(buffer.getDouble())); - break; - case QMF_TYPE_S8: - values[name] = ValuePtr(new IntegerValue(buffer.getOctet())); - break; - case QMF_TYPE_S16: - values[name] = ValuePtr(new IntegerValue(buffer.getShort())); - break; - case QMF_TYPE_S32: - values[name] = ValuePtr(new IntegerValue(buffer.getLong())); - break; - case QMF_TYPE_S64: - values[name] = ValuePtr(new Unsigned64Value(buffer.getLongLong())); - break; - case QMF_TYPE_REF: - case QMF_TYPE_UUID: - case QMF_TYPE_OBJECT: - case QMF_TYPE_MAP: - case QMF_TYPE_LIST: - case QMF_TYPE_ARRAY: - break; - } - } - } -} - - bool FieldTable::operator==(const FieldTable& x) const { if (values.size() != x.values.size()) return false; for (ValueMap::const_iterator i = values.begin(); i != values.end(); ++i) { diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp index 2193ba4007..b5ed4ed405 100644 --- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp +++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp @@ -267,7 +267,7 @@ void ManagementAgent::encodeHeader (Buffer& buf, uint8_t opcode, uint32_t seq) { buf.putOctet ('A'); buf.putOctet ('M'); - buf.putOctet ('3'); + buf.putOctet ('2'); buf.putOctet (opcode); buf.putLong (seq); } @@ -281,7 +281,7 @@ bool ManagementAgent::checkHeader (Buffer& buf, uint8_t *opcode, uint32_t *seq) *opcode = buf.getOctet(); *seq = buf.getLong(); - return h1 == 'A' && h2 == 'M' && h3 == '3'; + return h1 == 'A' && h2 == 'M' && h3 == '2'; } void ManagementAgent::sendBuffer(Buffer& buf, @@ -1201,7 +1201,7 @@ size_t ManagementAgent::validateTableSchema(Buffer& inBuffer) inBuffer.getShortString(text); inBuffer.getBin128(hash); - uint8_t superType = inBuffer.getOctet(); + uint8_t superType = 0; //inBuffer.getOctet(); uint16_t propCount = inBuffer.getShort(); uint16_t statCount = inBuffer.getShort(); |