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

Side by Side Diff: metrics_daemon.h

Issue 2698002: Update metrics daemon to use new power manager signals for locking (4 of 7). (Closed) Base URL: ssh://git@chromiumos-git/metrics.git
Patch Set: Update to master Created 10 years, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | metrics_daemon.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef METRICS_DAEMON_H_ 5 #ifndef METRICS_DAEMON_H_
6 #define METRICS_DAEMON_H_ 6 #define METRICS_DAEMON_H_
7 7
8 #include <dbus/dbus.h> 8 #include <dbus/dbus.h>
9 #include <glib.h> 9 #include <glib.h>
10 10
11 #include "metrics_library.h" 11 #include "metrics_library.h"
12 12
13 #include <gtest/gtest_prod.h> // for FRIEND_TEST 13 #include <gtest/gtest_prod.h> // for FRIEND_TEST
14 #include <base/time.h> 14 #include <base/time.h>
15 15
16 class MetricsDaemon { 16 class MetricsDaemon {
17 17
18 public: 18 public:
19 MetricsDaemon() 19 MetricsDaemon()
20 : daily_use_record_file_(NULL), 20 : daily_use_record_file_(NULL),
21 network_state_(kUnknownNetworkState), 21 network_state_(kUnknownNetworkState),
22 power_state_(kUnknownPowerState), 22 power_state_(kUnknownPowerState),
23 screensaver_state_(kUnknownScreenSaverState),
24 session_state_(kUnknownSessionState), 23 session_state_(kUnknownSessionState),
25 user_active_(false), 24 user_active_(false),
26 daily_use_day_last_(0), 25 daily_use_day_last_(0),
27 usemon_interval_(0), 26 usemon_interval_(0),
28 usemon_source_(NULL) {} 27 usemon_source_(NULL) {}
29 ~MetricsDaemon() {} 28 ~MetricsDaemon() {}
30 29
31 // Initializes. 30 // Initializes.
32 void Init(bool testing, MetricsLibraryInterface* metrics_lib); 31 void Init(bool testing, MetricsLibraryInterface* metrics_lib);
33 32
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 }; 64 };
66 65
67 // The power states (see power_states.h). 66 // The power states (see power_states.h).
68 enum PowerState { 67 enum PowerState {
69 kUnknownPowerState = -1, // Initial/unknown power state. 68 kUnknownPowerState = -1, // Initial/unknown power state.
70 #define STATE(name, capname) kPowerState ## capname, 69 #define STATE(name, capname) kPowerState ## capname,
71 #include "power_states.h" 70 #include "power_states.h"
72 kNumberPowerStates 71 kNumberPowerStates
73 }; 72 };
74 73
75 // The screen-saver states (see screensaver_states.h).
76 enum ScreenSaverState {
77 kUnknownScreenSaverState = -1, // Initial/unknown screen-saver state.
78 #define STATE(name, capname) kScreenSaverState ## capname,
79 #include "screensaver_states.h"
80 kNumberScreenSaverStates
81 };
82
83 // The user session states (see session_states.h). 74 // The user session states (see session_states.h).
84 enum SessionState { 75 enum SessionState {
85 kUnknownSessionState = -1, // Initial/unknown user session state. 76 kUnknownSessionState = -1, // Initial/unknown user session state.
86 #define STATE(name, capname) kSessionState ## capname, 77 #define STATE(name, capname) kSessionState ## capname,
87 #include "session_states.h" 78 #include "session_states.h"
88 kNumberSessionStates 79 kNumberSessionStates
89 }; 80 };
90 81
91 // Data record for aggregating daily usage. 82 // Data record for aggregating daily usage.
92 class UseRecord { 83 class UseRecord {
(...skipping 15 matching lines...) Expand all
108 99
109 // D-Bus message match strings. 100 // D-Bus message match strings.
110 static const char* kDBusMatches_[]; 101 static const char* kDBusMatches_[];
111 102
112 // Array of network states. 103 // Array of network states.
113 static const char* kNetworkStates_[kNumberNetworkStates]; 104 static const char* kNetworkStates_[kNumberNetworkStates];
114 105
115 // Array of power states. 106 // Array of power states.
116 static const char* kPowerStates_[kNumberPowerStates]; 107 static const char* kPowerStates_[kNumberPowerStates];
117 108
118 // Array of screen-saver states.
119 static const char* kScreenSaverStates_[kNumberScreenSaverStates];
120
121 // Array of user session states. 109 // Array of user session states.
122 static const char* kSessionStates_[kNumberSessionStates]; 110 static const char* kSessionStates_[kNumberSessionStates];
123 111
124 // Creates the event loop and enters it. 112 // Creates the event loop and enters it.
125 void Loop(); 113 void Loop();
126 114
127 // D-Bus filter callback. 115 // D-Bus filter callback.
128 static DBusHandlerResult MessageFilter(DBusConnection* connection, 116 static DBusHandlerResult MessageFilter(DBusConnection* connection,
129 DBusMessage* message, 117 DBusMessage* message,
130 void* user_data); 118 void* user_data);
131 119
132 // Processes network state change. 120 // Processes network state change.
133 void NetStateChanged(const char* state_name, base::TimeTicks ticks); 121 void NetStateChanged(const char* state_name, base::TimeTicks ticks);
134 122
135 // Given the state name, returns the state id. 123 // Given the state name, returns the state id.
136 NetworkState LookupNetworkState(const char* state_name); 124 NetworkState LookupNetworkState(const char* state_name);
137 125
138 // Processes power state change. 126 // Processes power state change.
139 void PowerStateChanged(const char* state_name, base::Time now); 127 void PowerStateChanged(const char* state_name, base::Time now);
140 128
141 // Given the state name, returns the state id. 129 // Given the state name, returns the state id.
142 PowerState LookupPowerState(const char* state_name); 130 PowerState LookupPowerState(const char* state_name);
143 131
144 // Processes screen-saver state change.
145 void ScreenSaverStateChanged(const char* state_name, base::Time now);
146
147 // Given the state name, returns the state id.
148 ScreenSaverState LookupScreenSaverState(const char* state_name);
149
150 // Processes user session state change. 132 // Processes user session state change.
151 void SessionStateChanged(const char* state_name, base::Time now); 133 void SessionStateChanged(const char* state_name, base::Time now);
152 134
153 // Given the state name, returns the state id. 135 // Given the state name, returns the state id.
154 SessionState LookupSessionState(const char* state_name); 136 SessionState LookupSessionState(const char* state_name);
155 137
156 // Updates the user-active state to |active| and logs the usage data 138 // Updates the user-active state to |active| and logs the usage data
157 // since the last update. If the user has just become active, 139 // since the last update. If the user has just become active,
158 // reschedule the daily use monitor for more frequent updates -- 140 // reschedule the daily use monitor for more frequent updates --
159 // this is followed by an exponential back-off (see UseMonitor). 141 // this is followed by an exponential back-off (see UseMonitor).
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 NetworkState network_state_; 190 NetworkState network_state_;
209 191
210 // Timestamps last network state update. This timestamp is used to 192 // Timestamps last network state update. This timestamp is used to
211 // sample the time from the network going online to going offline so 193 // sample the time from the network going online to going offline so
212 // TimeTicks ensures a monotonically increasing TimeDelta. 194 // TimeTicks ensures a monotonically increasing TimeDelta.
213 base::TimeTicks network_state_last_; 195 base::TimeTicks network_state_last_;
214 196
215 // Current power state. 197 // Current power state.
216 PowerState power_state_; 198 PowerState power_state_;
217 199
218 // Current screen-saver state.
219 ScreenSaverState screensaver_state_;
220
221 // Current user session state. 200 // Current user session state.
222 SessionState session_state_; 201 SessionState session_state_;
223 202
224 // Is the user currently active: power is on, user session has 203 // Is the user currently active: power is on, user session has
225 // started, screen is not locked. 204 // started, screen is not locked.
226 bool user_active_; 205 bool user_active_;
227 206
228 // Timestamps last user active update. Active use time is 207 // Timestamps last user active update. Active use time is
229 // aggregated each day before sending to UMA so using time since the 208 // aggregated each day before sending to UMA so using time since the
230 // epoch as the timestamp. 209 // epoch as the timestamp.
231 base::Time user_active_last_; 210 base::Time user_active_last_;
232 211
233 // Last stored daily use day (since the epoch). 212 // Last stored daily use day (since the epoch).
234 int daily_use_day_last_; 213 int daily_use_day_last_;
235 214
236 // Sleep period until the next daily usage aggregation performed by 215 // Sleep period until the next daily usage aggregation performed by
237 // the daily use monitor (see ScheduleUseMonitor). 216 // the daily use monitor (see ScheduleUseMonitor).
238 int usemon_interval_; 217 int usemon_interval_;
239 218
240 // Scheduled daily use monitor source (see ScheduleUseMonitor). 219 // Scheduled daily use monitor source (see ScheduleUseMonitor).
241 GSource* usemon_source_; 220 GSource* usemon_source_;
242 }; 221 };
243 222
244 #endif // METRICS_DAEMON_H_ 223 #endif // METRICS_DAEMON_H_
OLDNEW
« 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