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) {