diff options
author | Andrew Stitcher <astitcher@apache.org> | 2014-07-01 16:55:43 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2014-07-01 16:55:43 +0000 |
commit | b2bd2715e9b15271fb051e594f8bd141cf4b073a (patch) | |
tree | 005d33c3a0292af64d0c528874a11e8612a05f6d /qpid/cpp/src/qmf/AgentSession.cpp | |
parent | ea3eadaf0f332988da797cc66d6534dc2ee4ee1e (diff) | |
download | qpid-python-b2bd2715e9b15271fb051e594f8bd141cf4b073a.tar.gz |
QPID-5865: Be more robust in face of system clock being changed:
- Separate Wall clock time uses from other time
* (assumed that any time with respect to the epoch is wallclock)
- For Posix use CLOCK_MONOTONIC for all non wall clock purposes
so that changing system time doesn't affect internal timekeeping
- For Windows kept the same time keeping scheme.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1607140 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/qmf/AgentSession.cpp')
-rw-r--r-- | qpid/cpp/src/qmf/AgentSession.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/qpid/cpp/src/qmf/AgentSession.cpp b/qpid/cpp/src/qmf/AgentSession.cpp index 1afdc14021..4605285448 100644 --- a/qpid/cpp/src/qmf/AgentSession.cpp +++ b/qpid/cpp/src/qmf/AgentSession.cpp @@ -76,7 +76,7 @@ AgentSessionImpl::AgentSessionImpl(Connection& c, const string& options) : externalStorage(false), autoAllowQueries(true), autoAllowMethods(true), maxSubscriptions(64), minSubInterval(3000), subLifetime(300), publicEvents(true), listenOnDirect(true), strictSecurity(false), maxThreadWaitTime(5), - schemaUpdateTime(uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()))) + schemaUpdateTime(uint64_t(qpid::sys::Duration::FromEpoch())) { // // Set Agent Capability Level @@ -288,7 +288,7 @@ void AgentSessionImpl::registerSchema(Schema& schema) // // Get the news out at the next periodic interval that there is new schema information. // - schemaUpdateTime = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + schemaUpdateTime = uint64_t(qpid::sys::Duration::FromEpoch()); forceHeartbeat = true; } @@ -509,7 +509,7 @@ void AgentSessionImpl::raiseEvent(const Data& data, int severity) Variant::List list; Variant::Map dataAsMap(DataImplAccess::get(data).asMap()); dataAsMap["_severity"] = severity; - dataAsMap["_timestamp"] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + dataAsMap["_timestamp"] = uint64_t(qpid::sys::Duration::FromEpoch()); list.push_back(dataAsMap); encode(list, msg); topicSender.send(msg); @@ -591,7 +591,7 @@ void AgentSessionImpl::handleLocateRequest(const Variant::List& predicate, const headers[protocol::HEADER_KEY_APP_ID] = protocol::HEADER_APP_ID_QMF; map["_values"] = attributes; - map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration::FromEpoch()); map["_values"].asMap()[protocol::AGENT_ATTR_HEARTBEAT_INTERVAL] = interval; map["_values"].asMap()[protocol::AGENT_ATTR_EPOCH] = bootSequence; map["_values"].asMap()[protocol::AGENT_ATTR_SCHEMA_UPDATED_TIMESTAMP] = schemaUpdateTime; @@ -883,7 +883,7 @@ void AgentSessionImpl::sendHeartbeat() msg.setSubject(address.str()); map["_values"] = attributes; - map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now())); + map["_values"].asMap()[protocol::AGENT_ATTR_TIMESTAMP] = uint64_t(qpid::sys::Duration::FromEpoch()); map["_values"].asMap()[protocol::AGENT_ATTR_HEARTBEAT_INTERVAL] = interval; map["_values"].asMap()[protocol::AGENT_ATTR_EPOCH] = bootSequence; map["_values"].asMap()[protocol::AGENT_ATTR_SCHEMA_UPDATED_TIMESTAMP] = schemaUpdateTime; @@ -992,7 +992,7 @@ void AgentSessionImpl::run() try { while (!threadCanceled) { - periodicProcessing((uint64_t) qpid::sys::Duration(qpid::sys::EPOCH, qpid::sys::now()) / qpid::sys::TIME_SEC); + periodicProcessing((uint64_t) qpid::sys::Duration::FromEpoch() / qpid::sys::TIME_SEC); Receiver rx; bool valid = session.nextReceiver(rx, Duration::SECOND * maxThreadWaitTime); |