shill: Add support for Network.*.TimeResumeToReady
BUG=chromium-os:24440
TEST=Unit tests, network_WiFiManager, manually suspend/resume system
Change-Id: Ica618f2c713bac92f609d7894b16b0dd93af1645
Reviewed-on: https://gerrit.chromium.org/gerrit/17263
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/metrics.h b/metrics.h
index 2aac1f1..125fc22 100644
--- a/metrics.h
+++ b/metrics.h
@@ -12,6 +12,7 @@
#include <metrics/metrics_library.h>
#include <metrics/timer.h>
+#include "shill/power_manager.h"
#include "shill/refptr_types.h"
#include "shill/service.h"
@@ -116,6 +117,7 @@
static const int kMetricTimeOnlineSecondsMax;
static const int kMetricTimeOnlineSecondsMin;
static const int kMetricTimeOnlineSecondsNumBuckets;
+ static const char kMetricTimeResumeToReadyMilliseconds[];
static const char kMetricTimeToConfigMilliseconds[];
static const char kMetricTimeToDropSeconds[];
static const int kMetricTimeToDropSecondsMax;
@@ -127,6 +129,8 @@
static const int kTimerHistogramMillisecondsMin;
static const int kTimerHistogramNumBuckets;
+ static const char kMetricPowerManagerKey[];
+
Metrics();
virtual ~Metrics();
@@ -166,8 +170,8 @@
// Notifies this object that |service| has been disconnected.
void NotifyServiceDisconnect(const Service *service);
- // Notifies this object of a power management event.
- void NotifyPower();
+ // Notifies this object of a power management state change.
+ void NotifyPowerStateChange(PowerManager::SuspendState new_state);
// Sends linear histogram data to UMA.
bool SendEnumToUMA(const std::string &name, int sample, int max);
@@ -179,13 +183,14 @@
private:
friend struct base::DefaultLazyInstanceTraits<Metrics>;
friend class MetricsTest;
- FRIEND_TEST(MetricsTest, TimeToConfig);
- FRIEND_TEST(MetricsTest, TimeToPortal);
- FRIEND_TEST(MetricsTest, TimeToOnline);
- FRIEND_TEST(MetricsTest, ServiceFailure);
- FRIEND_TEST(MetricsTest, WiFiServiceChannel);
FRIEND_TEST(MetricsTest, FrequencyToChannel);
+ FRIEND_TEST(MetricsTest, ServiceFailure);
FRIEND_TEST(MetricsTest, TimeOnlineTimeToDrop);
+ FRIEND_TEST(MetricsTest, TimeToConfig);
+ FRIEND_TEST(MetricsTest, TimeToOnline);
+ FRIEND_TEST(MetricsTest, TimeToPortal);
+ FRIEND_TEST(MetricsTest, WiFiServiceChannel);
+ FRIEND_TEST(MetricsTest, WiFiServicePostReady);
typedef ScopedVector<chromeos_metrics::TimerReporter> TimerReporters;
typedef std::list<chromeos_metrics::TimerReporter *> TimerReportersList;
@@ -234,6 +239,9 @@
void set_time_to_drop_timer(chromeos_metrics::Timer *timer) {
time_to_drop_timer_.reset(timer); // Passes ownership
}
+ void set_time_resume_to_ready_timer(chromeos_metrics::Timer *timer) {
+ time_resume_to_ready_timer_.reset(timer); // Passes ownership
+ }
// |library_| points to |metrics_library_| when shill runs normally.
// However, in order to allow for unit testing, we point |library_| to a
@@ -245,6 +253,7 @@
bool was_online_;
scoped_ptr<chromeos_metrics::Timer> time_online_timer_;
scoped_ptr<chromeos_metrics::Timer> time_to_drop_timer_;
+ scoped_ptr<chromeos_metrics::Timer> time_resume_to_ready_timer_;
DISALLOW_COPY_AND_ASSIGN(Metrics);
};