diff options
Diffstat (limited to 'cpp/src/qpid/management')
| -rw-r--r-- | cpp/src/qpid/management/ManagementBroker.cpp | 25 | ||||
| -rw-r--r-- | cpp/src/qpid/management/ManagementObject.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/management/ManagementObject.h | 12 |
3 files changed, 19 insertions, 20 deletions
diff --git a/cpp/src/qpid/management/ManagementBroker.cpp b/cpp/src/qpid/management/ManagementBroker.cpp index 48b73546b3..b800d62fb6 100644 --- a/cpp/src/qpid/management/ManagementBroker.cpp +++ b/cpp/src/qpid/management/ManagementBroker.cpp @@ -344,17 +344,6 @@ void ManagementBroker::periodicProcessing (void) string routingKey; list<pair<ObjectId, ManagementObject*> > deleteList; - { - Buffer msgBuffer(msgChars, BUFSIZE); - encodeHeader(msgBuffer, 'h'); - msgBuffer.putLongLong(uint64_t(Duration(now()))); - - contentSize = BUFSIZE - msgBuffer.available (); - msgBuffer.reset (); - routingKey = "console.heartbeat.1.0"; - sendBuffer (msgBuffer, contentSize, mExchange, routingKey); - } - moveNewObjectsLH(); if (clientWasAdded) { @@ -367,9 +356,6 @@ void ManagementBroker::periodicProcessing (void) } } - if (managementObjects.empty ()) - return; - for (ManagementObjectMap::iterator iter = managementObjects.begin (); iter != managementObjects.end (); iter++) @@ -416,6 +402,17 @@ void ManagementBroker::periodicProcessing (void) deleteList.clear(); deleteOrphanedAgentsLH(); } + + { + Buffer msgBuffer(msgChars, BUFSIZE); + encodeHeader(msgBuffer, 'h'); + msgBuffer.putLongLong(uint64_t(Duration(now()))); + + contentSize = BUFSIZE - msgBuffer.available (); + msgBuffer.reset (); + routingKey = "console.heartbeat.1.0"; + sendBuffer (msgBuffer, contentSize, mExchange, routingKey); + } } void ManagementBroker::sendCommandComplete (string replyToKey, uint32_t sequence, diff --git a/cpp/src/qpid/management/ManagementObject.cpp b/cpp/src/qpid/management/ManagementObject.cpp index 5a40e3f619..f4c45de126 100644 --- a/cpp/src/qpid/management/ManagementObject.cpp +++ b/cpp/src/qpid/management/ManagementObject.cpp @@ -163,7 +163,7 @@ void ManagementObject::writeTimestamps (framing::Buffer& buf) buf.putShortString (getPackageName ()); buf.putShortString (getClassName ()); buf.putBin128 (getMd5Sum ()); - buf.putLongLong (uint64_t (sys::Duration (sys::now ()))); + buf.putLongLong (updateTime); buf.putLongLong (createTime); buf.putLongLong (destroyTime); objectId.encode(buf); diff --git a/cpp/src/qpid/management/ManagementObject.h b/cpp/src/qpid/management/ManagementObject.h index a34f50ab8f..6f229353e3 100644 --- a/cpp/src/qpid/management/ManagementObject.h +++ b/cpp/src/qpid/management/ManagementObject.h @@ -114,6 +114,7 @@ class ManagementObject : public ManagementItem uint64_t createTime; uint64_t destroyTime; + uint64_t updateTime; ObjectId objectId; bool configChanged; bool instChanged; @@ -132,11 +133,11 @@ class ManagementObject : public ManagementItem public: typedef void (*writeSchemaCall_t) (qpid::framing::Buffer&); - ManagementObject (ManagementAgent* _agent, Manageable* _core) : - destroyTime(0), configChanged(true), - instChanged(true), deleted(false), coreObject(_core), agent(_agent) - { createTime = uint64_t (qpid::sys::Duration (qpid::sys::now ())); } - virtual ~ManagementObject () {} + 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) {} + virtual ~ManagementObject() {} virtual writeSchemaCall_t getWriteSchemaCall (void) = 0; virtual void writeProperties(qpid::framing::Buffer& buf) = 0; @@ -159,6 +160,7 @@ class ManagementObject : public ManagementItem configChanged = true; instChanged = true; } + inline void setUpdateTime() { updateTime = (uint64_t(sys::Duration(sys::now()))); } inline void resourceDestroy (void) { destroyTime = uint64_t (qpid::sys::Duration (qpid::sys::now ())); |
