Author: kgiusti
Date: Thu Mar 18 17:10:47 2010
New Revision: 924898

URL: http://svn.apache.org/viewvc?rev=924898&view=rev
Log:
revert to original schema encoding

Modified:
    
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementEvent.h
    
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementObject.h
    
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
    qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.h
    
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp
    qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.h
    qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
    qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementEvent.h
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementEvent.h?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementEvent.h 
(original)
+++ 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementEvent.h 
Thu Mar 18 17:10:47 2010
@@ -23,7 +23,6 @@
  */
 
 #include "qpid/management/ManagementObject.h"
-//#include <qpid/framing/Buffer.h>
 #include "qpid/messaging/MapContent.h"
 #include "qpid/messaging/MapView.h"
 #include <string>
@@ -37,7 +36,7 @@ class ManagementEvent : public Managemen
  public:
     static const uint8_t MD5_LEN = 16;
     //typedef void (*writeSchemaCall_t)(qpid::framing::Buffer&);
-    typedef void (*writeSchemaCall_t)(qpid::messaging::VariantMap&);
+    typedef void (*writeSchemaCall_t)(std::string&);
     virtual ~ManagementEvent() {}
 
     virtual writeSchemaCall_t getWriteSchemaCall(void) = 0;

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementObject.h
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementObject.h?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementObject.h 
(original)
+++ 
qpid/branches/qmf-devel0.7a/qpid/cpp/include/qpid/management/ManagementObject.h 
Thu Mar 18 17:10:47 2010
@@ -151,7 +151,7 @@ protected:
     QPID_COMMON_EXTERN static const uint8_t MD5_LEN = 16;
     QPID_COMMON_EXTERN static int maxThreads;
     //typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&);
-    typedef void (*writeSchemaCall_t) (qpid::messaging::VariantMap&);
+    typedef void (*writeSchemaCall_t) (std::string&);
 
     ManagementObject(Manageable* _core) :
         createTime(uint64_t(qpid::sys::Duration(qpid::sys::now()))),

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp 
(original)
+++ 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.cpp 
Thu Mar 18 17:10:47 2010
@@ -22,6 +22,8 @@
 
 #include "qpid/log/Statement.h"
 #include "qpid/management/Manageable.h"
+#include "qpid/framing/FieldTable.h"
+#include "qpid/framing/Buffer.h"
 #include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h"
 #include "/*MGEN:Class.NameCap*/.h"
 /*MGEN:Class.MethodArgIncludes*/
@@ -89,37 +91,33 @@ void /*MGEN:Class.NameCap*/::registerSel
     agent->registerClass(packageName, className, md5Sum, writeSchema);
 }
 
-void /*MGEN:Class.NameCap*/::writeSchema (::qpid::messaging::VariantMap& map)
+void /*MGEN:Class.NameCap*/::writeSchema (std::string& schema)
 {
-    ::qpid::messaging::Variant::Map _sid;
-    ::qpid::messaging::Variant::Map _props;
-    ::qpid::messaging::Variant::Map _stats;
-    ::qpid::messaging::Variant::Map _methods;
-
-    _sid["_type"] = CLASS_KIND_TABLE;
-    _sid["_package_name"] = packageName;
-    _sid["_class_name"] = className;
-    _sid["_hash_str"] = std::string((const char *)md5Sum, sizeof(md5Sum));
-    map["_schema_id"] = _sid;
-
-    map["_config_ct"] = /*MGEN:Class.ConfigCount*/;
-    map["_inst_ct"] = /*MGEN:Class.InstCount*/;
-    map["_method_ct"] = /*MGEN:Class.MethodCount*/;
+#define BUFSIZE   65536
+    char _msgChars[BUFSIZE];
+    ::qpid::framing::Buffer buf(_msgChars, BUFSIZE);
+    ::qpid::framing::FieldTable ft;
+
+    // Schema class header:
+    buf.putOctet       (CLASS_KIND_TABLE);
+    buf.putShortString (packageName); // Package Name
+    buf.putShortString (className);   // Class Name
+    buf.putBin128      (md5Sum);      // Schema Hash
+    buf.putShort       (/*MGEN:Class.ConfigCount*/); // Config Element Count
+    buf.putShort       (/*MGEN:Class.InstCount*/); // Inst Element Count
+    buf.putShort       (/*MGEN:Class.MethodCount*/); // Method Count
 
     // Properties
-/*MGEN:Class.PropertySchemaMap*/
-    if (!_props.empty())
-        map["_properties"] = _props;
-
+/*MGEN:Class.PropertySchema*/
     // Statistics
-/*MGEN:Class.StatisticSchemaMap*/
-    if (!_stats.empty())
-        map["_statistics"] = _stats;
-
+/*MGEN:Class.StatisticSchema*/
     // Methods
-/*MGEN:Class.MethodSchemaMap*/
-    if (!_methods.empty())
-        map["_methods"] = _methods;
+/*MGEN:Class.MethodSchema*/
+    {
+        uint32_t _len = buf.getPosition();
+        buf.reset();
+        buf.getRawData(schema, _len);
+    }
 }
 
 /*MGEN:IF(Class.ExistPerThreadStats)*/

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.h
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.h?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.h 
(original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Class.h 
Thu Mar 18 17:10:47 2010
@@ -74,7 +74,7 @@ class /*MGEN:Class.NameCap*/ : public ::
     void aggregatePerThreadStats(struct PerThreadStats*) const;
 /*MGEN:ENDIF*/
   public:
-    static void writeSchema(::qpid::messaging::VariantMap& map);
+    static void writeSchema(std::string& schema);
     void mapEncodeValues(::qpid::messaging::VariantMap& map,
                          bool includeProperties=true,
                          bool includeStatistics=true);

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp 
(original)
+++ 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.cpp 
Thu Mar 18 17:10:47 2010
@@ -22,6 +22,8 @@
 
 #include "qpid/log/Statement.h"
 #include "qpid/management/Manageable.h" 
+#include "qpid/framing/FieldTable.h"
+#include "qpid/framing/Buffer.h"
 #include "qpid//*MGEN:Event.AgentHeaderLocation*//ManagementAgent.h"
 #include "Event/*MGEN:Event.NameCap*/.h"
 
@@ -54,24 +56,28 @@ void Event/*MGEN:Event.NameCap*/::regist
     agent->registerEvent(packageName, eventName, md5Sum, writeSchema);
 }
 
-void Event/*MGEN:Event.NameCap*/::writeSchema (::qpid::messaging::VariantMap& 
map)
+void Event/*MGEN:Event.NameCap*/::writeSchema (std::string& schema)
 {
-    ::qpid::messaging::Variant::Map _sid;
-    ::qpid::messaging::Variant::Map _args;
+#define BUFSIZE   65536
+    char _msgChars[BUFSIZE];
+    ::qpid::framing::Buffer buf(_msgChars, BUFSIZE);
+    ::qpid::framing::FieldTable ft;
 
     // Schema class header:
-
-    _sid["_type"] = CLASS_KIND_EVENT;
-    _sid["_package_name"] = packageName;
-    _sid["_class_name"] = eventName;
-    _sid["_hash_str"] = std::string((const char *)md5Sum, sizeof(md5Sum));
-    map["_schema_id"] = _sid;
-
+    buf.putOctet       (CLASS_KIND_EVENT);
+    buf.putShortString (packageName); // Package Name
+    buf.putShortString (eventName);   // Event Name
+    buf.putBin128      (md5Sum);      // Schema Hash
+    buf.putOctet       (0);           // No Superclass    
+    buf.putShort       (/*MGEN:Event.ArgCount*/); // Argument Count
 
     // Arguments
-/*MGEN:Event.ArgSchemaMap*/
-    if (!_args.empty())
-        map["_arguments"] = _args;
+/*MGEN:Event.ArgSchema*/
+    {
+        uint32_t _len = buf.getPosition();
+        buf.reset();
+        buf.getRawData(schema, _len);
+    }
 }
 
 void Event/*MGEN:Event.NameCap*/::mapEncode(::qpid::messaging::VariantMap& 
map) const

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.h
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.h?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.h 
(original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/managementgen/qmfgen/templates/Event.h 
Thu Mar 18 17:10:47 2010
@@ -33,7 +33,7 @@ namespace qmf {
 class Event/*MGEN:Event.NameCap*/ : public ::qpid::management::ManagementEvent
 {
   private:
-    static void writeSchema (::qpid::messaging::VariantMap& map);
+    static void writeSchema (std::string& schema);
     static std::string packageName;
     static std::string eventName;
     static uint8_t md5Sum[MD5_LEN];

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp 
(original)
+++ qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp 
Thu Mar 18 17:10:47 2010
@@ -446,19 +446,17 @@ void ManagementAgentImpl::handleSchemaRe
         ClassMap::iterator cIter = cMap.find(key);
         if (cIter != cMap.end()) {
             SchemaClass& schema = cIter->second;
-            ::qpid::messaging::Message m;
-            ::qpid::messaging::MapContent content(m);
-
-            schema.writeSchemaCall(content.asMap());
-            
-            ::qpid::messaging::VariantMap headers;
-            headers["method"] = "response";
-            headers["qmf.opcode"] = "_query_response";
-            headers["qmf.content"] = "_schema_class";
-            headers["qmf.agent"] = name_address;
+            Buffer   outBuffer(outputBuffer, MA_BUFFER_SIZE);
+            uint32_t outLen;
+            std::string body;
+
+            encodeHeader(outBuffer, 's', sequence);
+            schema.writeSchemaCall(body);
+            outBuffer.putRawData(body);
+            outLen = MA_BUFFER_SIZE - outBuffer.available();
+            outBuffer.reset();
+            connThreadBody.sendBuffer(outBuffer, outLen, "qpid.management", 
"broker");
 
-            content.encode();
-            connThreadBody.sendBuffer(m.getContent(), sequence, headers, 
"qpid.management", "broker");
             QPID_LOG(trace, "SENT SchemaInd: package=" << packageName << " 
class=" << key.name);
         }
     }

Modified: 
qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL: 
http://svn.apache.org/viewvc/qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=924898&r1=924897&r2=924898&view=diff
==============================================================================
--- 
qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp 
(original)
+++ 
qpid/branches/qmf-devel0.7a/qpid/cpp/src/qpid/management/ManagementAgent.cpp 
Thu Mar 18 17:10:47 2010
@@ -960,14 +960,10 @@ void ManagementAgent::SchemaClass::appen
     // is from a remote management agent, send the stored schema information.
 
     if (writeSchemaCall != 0) {
-        qpid::messaging::Message m;
-        qpid::messaging::MapContent content(m);
-
-        writeSchemaCall(content.asMap());
-        content.encode();
-        buf.putRawData(m.getContent());
-    }
-    else
+        std::string schema;
+        writeSchemaCall(schema);
+        buf.putRawData(schema);
+    } else
         buf.putRawData(reinterpret_cast<uint8_t*>(&data[0]), data.size());
 }
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to