summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/ManagementObject.h
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-12-01 16:38:54 +0000
committerTed Ross <tross@apache.org>2008-12-01 16:38:54 +0000
commit1d8a1fa5fdbbe04f7c5412c51facae9b5b2518a5 (patch)
treea672ee4efbc0a5289fe37d93bf4afcd4879d655f /cpp/src/qpid/management/ManagementObject.h
parent8f38c8b511bbf232c5a65203b415aff456e61992 (diff)
downloadqpid-python-1d8a1fa5fdbbe04f7c5412c51facae9b5b2518a5.tar.gz
Fixed a performance regression caused by the management code.
The current/last-change timestamp is now set on management objects when they are published, not when they actually change. Also, the timestamp is updated only if modifications were made to the object in the last publish interval. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722120 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management/ManagementObject.h')
-rw-r--r--cpp/src/qpid/management/ManagementObject.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/cpp/src/qpid/management/ManagementObject.h b/cpp/src/qpid/management/ManagementObject.h
index 6f229353e3..e5604eb2e4 100644
--- a/cpp/src/qpid/management/ManagementObject.h
+++ b/cpp/src/qpid/management/ManagementObject.h
@@ -126,6 +126,7 @@ class ManagementObject : public ManagementItem
uint32_t flags;
static int nextThreadIndex;
+ bool forcePublish;
int getThreadIndex();
void writeTimestamps (qpid::framing::Buffer& buf);
@@ -136,7 +137,8 @@ class ManagementObject : public ManagementItem
ManagementObject(ManagementAgent* _agent, Manageable* _core) :
createTime(uint64_t(qpid::sys::Duration(qpid::sys::now()))),
destroyTime(0), updateTime(createTime), configChanged(true),
- instChanged(true), deleted(false), coreObject(_core), agent(_agent) {}
+ instChanged(true), deleted(false),
+ coreObject(_core), agent(_agent), forcePublish(false) {}
virtual ~ManagementObject() {}
virtual writeSchemaCall_t getWriteSchemaCall (void) = 0;
@@ -156,11 +158,9 @@ class ManagementObject : public ManagementItem
ObjectId getObjectId (void) { return objectId; }
inline bool getConfigChanged (void) { return configChanged; }
virtual bool getInstChanged (void) { return instChanged; }
- inline void setAllChanged (void) {
- configChanged = true;
- instChanged = true;
- }
- inline void setUpdateTime() { updateTime = (uint64_t(sys::Duration(sys::now()))); }
+ 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 ()));