Author: tross
Date: Mon Dec  8 06:26:55 2008
New Revision: 724356

URL: http://svn.apache.org/viewvc?rev=724356&view=rev
Log:
Management optimization: don't send (empty) statistic updates for object
classes that don't have statistics.

Modified:
    incubator/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h
    incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h

Modified: incubator/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h?rev=724356&r1=724355&r2=724356&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h 
(original)
+++ incubator/qpid/trunk/qpid/cpp/managementgen/qmfgen/templates/Class.h Mon 
Dec  8 06:26:55 2008
@@ -68,30 +68,31 @@
     void aggregatePerThreadStats(struct PerThreadStats*);
 /*MGEN:ENDIF*/
     // Private Methods
-    static void writeSchema (::qpid::framing::Buffer& buf);
-    void writeProperties    (::qpid::framing::Buffer& buf);
-    void writeStatistics    (::qpid::framing::Buffer& buf,
-                             bool skipHeaders = false);
-    void doMethod           (std::string& methodName,
-                             ::qpid::framing::Buffer& inBuf,
-                             ::qpid::framing::Buffer& outBuf);
-    writeSchemaCall_t getWriteSchemaCall(void) { return writeSchema; }
+    static void writeSchema(::qpid::framing::Buffer& buf);
+    void writeProperties(::qpid::framing::Buffer& buf);
+    void writeStatistics(::qpid::framing::Buffer& buf,
+                         bool skipHeaders = false);
+    void doMethod(std::string& methodName,
+                  ::qpid::framing::Buffer& inBuf,
+                  ::qpid::framing::Buffer& outBuf);
+    writeSchemaCall_t getWriteSchemaCall() { return writeSchema; }
 /*MGEN:IF(Class.NoStatistics)*/
     // Stub for getInstChanged.  There are no statistics in this class.
-    bool getInstChanged (void) { return false; }
+    bool getInstChanged() { return false; }
+    bool hasInst() { return false; }
 /*MGEN:ENDIF*/
   public:
 
-    /*MGEN:Class.NameCap*/ (::qpid::management::ManagementAgent* agent,
+    /*MGEN:Class.NameCap*/(::qpid::management::ManagementAgent* agent,
                             ::qpid::management::Manageable* 
coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/);
-    ~/*MGEN:Class.NameCap*/ (void);
+    ~/*MGEN:Class.NameCap*/();
 
     /*MGEN:Class.SetGeneralReferenceDeclaration*/
 
-    static void  registerSelf   (::qpid::management::ManagementAgent* agent);
-    std::string& getPackageName (void) const { return packageName; }
-    std::string& getClassName   (void) const { return className; }
-    uint8_t*     getMd5Sum      (void) const { return md5Sum; }
+    static void registerSelf(::qpid::management::ManagementAgent* agent);
+    std::string& getPackageName() const { return packageName; }
+    std::string& getClassName() const { return className; }
+    uint8_t* getMd5Sum() const { return md5Sum; }
 
     // Method IDs
 /*MGEN:Class.MethodIdDeclarations*/

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp?rev=724356&r1=724355&r2=724356&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp 
(original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp Mon 
Dec  8 06:26:55 2008
@@ -745,7 +745,7 @@
                     object->writeProperties(msgBuffer);
                 }
         
-                if (object->getInstChanged() || object->getForcePublish()) {
+                if (object->hasInst() && (object->getInstChanged() || 
object->getForcePublish())) {
                     encodeHeader(msgBuffer, 'i');
                     object->writeStatistics(msgBuffer);
                 }

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp?rev=724356&r1=724355&r2=724356&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp 
(original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementBroker.cpp Mon 
Dec  8 06:26:55 2008
@@ -360,15 +360,13 @@
 
     for (ManagementObjectMap::iterator iter = managementObjects.begin ();
          iter != managementObjects.end ();
-         iter++)
-    {
+         iter++) {
         ManagementObject* object = iter->second;
 
         if (object->getConfigChanged() || object->getInstChanged())
             object->setUpdateTime();
 
-        if (object->getConfigChanged() || object->getForcePublish() || 
object->isDeleted())
-        {
+        if (object->getConfigChanged() || object->getForcePublish() || 
object->isDeleted()) {
             Buffer msgBuffer (msgChars, BUFSIZE);
             encodeHeader (msgBuffer, 'c');
             object->writeProperties(msgBuffer);
@@ -379,8 +377,7 @@
             sendBuffer (msgBuffer, contentSize, mExchange, routingKey);
         }
         
-        if (object->getInstChanged() || object->getForcePublish())
-        {
+        if (object->hasInst() && (object->getInstChanged() || 
object->getForcePublish())) {
             Buffer msgBuffer (msgChars, BUFSIZE);
             encodeHeader (msgBuffer, 'i');
             object->writeStatistics(msgBuffer);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h?rev=724356&r1=724355&r2=724356&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h 
(original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementObject.h Mon 
Dec  8 06:26:55 2008
@@ -129,7 +129,7 @@
     bool             forcePublish;
         
     int  getThreadIndex();
-    void writeTimestamps (qpid::framing::Buffer& buf);
+    void writeTimestamps(qpid::framing::Buffer& buf);
 
   public:
     typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&);
@@ -141,32 +141,33 @@
         coreObject(_core), agent(_agent), forcePublish(false) {}
     virtual ~ManagementObject() {}
 
-    virtual writeSchemaCall_t getWriteSchemaCall (void) = 0;
+    virtual writeSchemaCall_t getWriteSchemaCall() = 0;
     virtual void writeProperties(qpid::framing::Buffer& buf) = 0;
     virtual void writeStatistics(qpid::framing::Buffer& buf,
                                  bool skipHeaders = false) = 0;
-    virtual void doMethod       (std::string&           methodName,
-                                 qpid::framing::Buffer& inBuf,
-                                 qpid::framing::Buffer& outBuf) = 0;
-    virtual void setReference   (ObjectId objectId);
-
-    virtual std::string& getClassName   (void) const = 0;
-    virtual std::string& getPackageName (void) const = 0;
-    virtual uint8_t*     getMd5Sum      (void) const = 0;
-
-    void         setObjectId      (ObjectId oid) { objectId = oid; }
-    ObjectId     getObjectId      (void) { return objectId; }
-    inline  bool getConfigChanged (void) { return configChanged; }
-    virtual bool getInstChanged   (void) { return instChanged; }
+    virtual void doMethod(std::string&           methodName,
+                          qpid::framing::Buffer& inBuf,
+                          qpid::framing::Buffer& outBuf) = 0;
+    virtual void setReference(ObjectId objectId);
+
+    virtual std::string& getClassName() const = 0;
+    virtual std::string& getPackageName() const = 0;
+    virtual uint8_t*     getMd5Sum() const = 0;
+
+    void         setObjectId(ObjectId oid) { objectId = oid; }
+    ObjectId     getObjectId() { return objectId; }
+    inline  bool getConfigChanged() { return configChanged; }
+    virtual bool getInstChanged() { return instChanged; }
+    virtual bool hasInst() { return true; }
     inline  void setForcePublish(bool f) { forcePublish = f; }
     inline  bool getForcePublish() { return forcePublish; }
     inline  void setUpdateTime() { updateTime = 
(uint64_t(sys::Duration(sys::now()))); }
 
-    inline void resourceDestroy  (void) {
-        destroyTime = uint64_t (qpid::sys::Duration (qpid::sys::now ()));
+    inline void resourceDestroy() {
+        destroyTime = uint64_t (qpid::sys::Duration(qpid::sys::now()));
         deleted     = true;
     }
-    inline bool isDeleted (void) { return deleted; }
+    inline bool isDeleted() { return deleted; }
     inline void setFlags(uint32_t f) { flags = f; }
     inline uint32_t getFlags() { return flags; }
     bool isSameClass(ManagementObject& other) {


Reply via email to