Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: metrics_daemon.h

Issue 2576005: Update metrics_daemon to use base/time.h instead of time_t directly. (Closed) Base URL: ssh://git@chromiumos-git/chromeos
Patch Set: Remove unused constant. Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | metrics_daemon.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: metrics_daemon.h
diff --git a/metrics_daemon.h b/metrics_daemon.h
index ba9e13c846121097c0dc4e7693c85aff1fb010a9..835aca36a168a3026f831d4d015efa52ee326b6e 100644
--- a/metrics_daemon.h
+++ b/metrics_daemon.h
@@ -7,11 +7,11 @@
#include <dbus/dbus.h>
#include <glib.h>
-#include <time.h>
#include "metrics_library.h"
#include <gtest/gtest_prod.h> // for FRIEND_TEST
+#include <base/time.h>
class MetricsDaemon {
@@ -19,12 +19,10 @@ class MetricsDaemon {
MetricsDaemon()
: daily_use_record_file_(NULL),
network_state_(kUnknownNetworkState),
- network_state_last_(0),
power_state_(kUnknownPowerState),
screensaver_state_(kUnknownScreenSaverState),
session_state_(kUnknownSessionState),
user_active_(false),
- user_active_last_(0),
daily_use_day_last_(0),
usemon_interval_(0),
usemon_source_(NULL) {}
@@ -56,6 +54,7 @@ class MetricsDaemon {
FRIEND_TEST(MetricsDaemonTest, SessionStateChanged);
FRIEND_TEST(MetricsDaemonTest, SetUserActiveStateSendOnLogin);
FRIEND_TEST(MetricsDaemonTest, SetUserActiveStateSendOnMonitor);
+ FRIEND_TEST(MetricsDaemonTest, SetUserActiveStateTimeJump);
// The network states (see network_states.h).
enum NetworkState {
@@ -131,25 +130,25 @@ class MetricsDaemon {
void* user_data);
// Processes network state change.
- void NetStateChanged(const char* state_name, time_t now);
+ void NetStateChanged(const char* state_name, base::TimeTicks ticks);
// Given the state name, returns the state id.
NetworkState LookupNetworkState(const char* state_name);
// Processes power state change.
- void PowerStateChanged(const char* state_name, time_t now);
+ void PowerStateChanged(const char* state_name, base::Time now);
// Given the state name, returns the state id.
PowerState LookupPowerState(const char* state_name);
// Processes screen-saver state change.
- void ScreenSaverStateChanged(const char* state_name, time_t now);
+ void ScreenSaverStateChanged(const char* state_name, base::Time now);
// Given the state name, returns the state id.
ScreenSaverState LookupScreenSaverState(const char* state_name);
// Processes user session state change.
- void SessionStateChanged(const char* state_name, time_t now);
+ void SessionStateChanged(const char* state_name, base::Time now);
// Given the state name, returns the state id.
SessionState LookupSessionState(const char* state_name);
@@ -158,7 +157,10 @@ class MetricsDaemon {
// since the last update. If the user has just become active,
// reschedule the daily use monitor for more frequent updates --
// this is followed by an exponential back-off (see UseMonitor).
- void SetUserActiveState(bool active, time_t now);
+ // While in active use, this method should be called at intervals no
+ // longer than kUseMonitorIntervalMax otherwise new use time will be
+ // discarded.
+ void SetUserActiveState(bool active, base::Time now);
// Updates the daily usage file, if necessary, by adding |seconds|
// of active use to the |day| since Epoch. If there's usage data for
@@ -205,8 +207,10 @@ class MetricsDaemon {
// Current network state.
NetworkState network_state_;
- // Timestamps last network state update.
- time_t network_state_last_;
+ // Timestamps last network state update. This timestamp is used to
+ // sample the time from the network going online to going offline so
+ // TimeTicks ensures a monotonically increasing TimeDelta.
+ base::TimeTicks network_state_last_;
// Current power state.
PowerState power_state_;
@@ -221,10 +225,12 @@ class MetricsDaemon {
// started, screen is not locked.
bool user_active_;
- // Timestamps last user active update.
- time_t user_active_last_;
+ // Timestamps last user active update. Active use time is
+ // aggregated each day before sending to UMA so using time since the
+ // epoch as the timestamp.
+ base::Time user_active_last_;
- // Last stored daily use day (since epoch).
+ // Last stored daily use day (since the epoch).
int daily_use_day_last_;
// Sleep period until the next daily usage aggregation performed by
« no previous file with comments | « no previous file | metrics_daemon.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698