summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/cpp/src/qpid/management/ManagementBroker.cpp5
-rw-r--r--qpid/cpp/src/qpid/management/ManagementBroker.h1
-rw-r--r--qpid/specs/management-schema.xml1
3 files changed, 6 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/management/ManagementBroker.cpp b/qpid/cpp/src/qpid/management/ManagementBroker.cpp
index 0f96e97fb0..97b6f20df2 100644
--- a/qpid/cpp/src/qpid/management/ManagementBroker.cpp
+++ b/qpid/cpp/src/qpid/management/ManagementBroker.cpp
@@ -80,7 +80,7 @@ ManagementBroker::RemoteAgent::~RemoteAgent ()
}
ManagementBroker::ManagementBroker () :
- threadPoolSize(1), interval(10), broker(0)
+ threadPoolSize(1), interval(10), broker(0), startTime(uint64_t(Duration(now())))
{
nextObjectId = 1;
brokerBank = 1;
@@ -346,6 +346,9 @@ void ManagementBroker::periodicProcessing (void)
string routingKey;
list<pair<ObjectId, ManagementObject*> > deleteList;
+ uint64_t uptime = uint64_t(Duration(now())) - startTime;
+ static_cast<_qmf::Broker*>(broker->GetManagementObject())->set_uptime(uptime);
+
moveNewObjectsLH();
if (clientWasAdded) {
diff --git a/qpid/cpp/src/qpid/management/ManagementBroker.h b/qpid/cpp/src/qpid/management/ManagementBroker.h
index f65d6a345e..a57f73be15 100644
--- a/qpid/cpp/src/qpid/management/ManagementBroker.h
+++ b/qpid/cpp/src/qpid/management/ManagementBroker.h
@@ -182,6 +182,7 @@ private:
uint32_t nextRemoteBank;
uint32_t nextRequestSequence;
bool clientWasAdded;
+ const uint64_t startTime;
std::auto_ptr<IdAllocator> allocator;
diff --git a/qpid/specs/management-schema.xml b/qpid/specs/management-schema.xml
index 67c90a1fbe..bc38350a45 100644
--- a/qpid/specs/management-schema.xml
+++ b/qpid/specs/management-schema.xml
@@ -70,6 +70,7 @@
<property name="mgmtPubInterval" type="uint16" access="RW" unit="second" min="1" desc="Interval for management broadcasts"/>
<property name="version" type="sstr" access="RO" desc="Running software version"/>
<property name="dataDir" type="sstr" access="RO" optional="y" desc="Persistent configuration storage location"/>
+ <statistic name="uptime" type="deltaTime"/>
<method name="echo" desc="Request a response to test the path to the management broker">
<arg name="sequence" dir="IO" type="uint32" default="0"/>