diff options
author | Ted Ross <tross@apache.org> | 2008-12-08 14:26:55 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2008-12-08 14:26:55 +0000 |
commit | b0149eb99d4157a011a1ea57d74164f2cafc9ce9 (patch) | |
tree | 0dd34ea1d13548846dccc1b97512856f25e96ca0 /cpp | |
parent | 75b79a3b11abf1def01f765f21cc781d54996153 (diff) | |
download | qpid-python-b0149eb99d4157a011a1ea57d74164f2cafc9ce9.tar.gz |
Management optimization: don't send (empty) statistic updates for object
classes that don't have statistics.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724356 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/managementgen/qmfgen/templates/Class.h | 31 | ||||
-rw-r--r-- | cpp/src/qpid/agent/ManagementAgentImpl.cpp | 2 | ||||
-rw-r--r-- | cpp/src/qpid/management/ManagementBroker.cpp | 9 | ||||
-rw-r--r-- | cpp/src/qpid/management/ManagementObject.h | 37 |
4 files changed, 39 insertions, 40 deletions
diff --git a/cpp/managementgen/qmfgen/templates/Class.h b/cpp/managementgen/qmfgen/templates/Class.h index 7796914d51..0bf9911895 100644 --- a/cpp/managementgen/qmfgen/templates/Class.h +++ b/cpp/managementgen/qmfgen/templates/Class.h @@ -68,30 +68,31 @@ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject 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*/ diff --git a/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/cpp/src/qpid/agent/ManagementAgentImpl.cpp index 08af89a72e..3e8b8ee261 100644 --- a/cpp/src/qpid/agent/ManagementAgentImpl.cpp +++ b/cpp/src/qpid/agent/ManagementAgentImpl.cpp @@ -745,7 +745,7 @@ void ManagementAgentImpl::periodicProcessing() object->writeProperties(msgBuffer); } - if (object->getInstChanged() || object->getForcePublish()) { + if (object->hasInst() && (object->getInstChanged() || object->getForcePublish())) { encodeHeader(msgBuffer, 'i'); object->writeStatistics(msgBuffer); } diff --git a/cpp/src/qpid/management/ManagementBroker.cpp b/cpp/src/qpid/management/ManagementBroker.cpp index 7082859948..cc7a2dc4f3 100644 --- a/cpp/src/qpid/management/ManagementBroker.cpp +++ b/cpp/src/qpid/management/ManagementBroker.cpp @@ -360,15 +360,13 @@ void ManagementBroker::periodicProcessing (void) 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 @@ void ManagementBroker::periodicProcessing (void) 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); diff --git a/cpp/src/qpid/management/ManagementObject.h b/cpp/src/qpid/management/ManagementObject.h index e5604eb2e4..fbdad347b8 100644 --- a/cpp/src/qpid/management/ManagementObject.h +++ b/cpp/src/qpid/management/ManagementObject.h @@ -129,7 +129,7 @@ class ManagementObject : public ManagementItem 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 @@ class ManagementObject : public ManagementItem 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) { |