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/src | |
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/src')
-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 |
3 files changed, 23 insertions, 25 deletions
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) { |