summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-12-08 14:26:55 +0000
committerTed Ross <tross@apache.org>2008-12-08 14:26:55 +0000
commitb0149eb99d4157a011a1ea57d74164f2cafc9ce9 (patch)
tree0dd34ea1d13548846dccc1b97512856f25e96ca0 /cpp/src
parent75b79a3b11abf1def01f765f21cc781d54996153 (diff)
downloadqpid-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.cpp2
-rw-r--r--cpp/src/qpid/management/ManagementBroker.cpp9
-rw-r--r--cpp/src/qpid/management/ManagementObject.h37
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) {