Chromium Code Reviews| Index: components/metrics/metrics_reporting_scheduler.h |
| diff --git a/components/metrics/metrics_reporting_scheduler.h b/components/metrics/metrics_reporting_scheduler.h |
| index 19f07570663727eb2c8c259b91fb073fd0477e8d..27955e211813a54b7dc8776f060a798a1e359e8f 100644 |
| --- a/components/metrics/metrics_reporting_scheduler.h |
| +++ b/components/metrics/metrics_reporting_scheduler.h |
| @@ -10,13 +10,19 @@ |
| #include "base/memory/weak_ptr.h" |
| #include "base/time/time.h" |
| #include "base/timer/timer.h" |
| +#include "components/metrics/net/network_metrics_provider.h" |
| namespace metrics { |
| // Scheduler task to drive a MetricsService object's uploading. |
| class MetricsReportingScheduler { |
| public: |
| - explicit MetricsReportingScheduler(const base::Closure& upload_callback); |
| + // Creates MetricsServiceScheduler object with the given |upload_callback| |
| + // callback to call when uploading should happen and |cellular_callback| |
| + // callback to get current network connection type. |
| + MetricsReportingScheduler( |
| + const base::Closure& upload_callback, |
| + const base::Callback<void(bool*)>& cellular_callback); |
| ~MetricsReportingScheduler(); |
| // Starts scheduling uploads. This in a no-op if the scheduler is already |
| @@ -39,6 +45,9 @@ class MetricsReportingScheduler { |
| // Sets the upload interval to a specific value, exposed for unit tests. |
| void SetUploadIntervalForTesting(base::TimeDelta interval); |
| + // Sets whether the network connection is cellular or not. |
| + void SetConnectionType(bool is_cellular); |
| + |
| private: |
| // Timer callback indicating it's time for the MetricsService to upload |
| // metrics. |
| @@ -57,6 +66,10 @@ class MetricsReportingScheduler { |
| // (bug: 17391128). Should be removed once the experiments are done. |
| base::TimeDelta GetStandardUploadInterval(); |
| + // Returns true if the user is assigned to the experiment group for enabled |
| + // cellular uploads. |
| + bool IsCellularEnabledByExperiment(); |
|
Alexei Svitkine (slow)
2015/02/18 03:26:23
Make this an anon function inside the .cc.
gayane -on leave until 09-2017
2015/02/18 21:38:23
Done.
|
| + |
| // The MetricsService method to call when uploading should happen. |
| const base::Closure upload_callback_; |
| @@ -84,6 +97,14 @@ class MetricsReportingScheduler { |
| // has been completed. |
| bool waiting_for_init_task_complete_; |
| + // Callback function from MetricsService used to get current network |
| + // connection type. |
| + base::Callback<void(bool*)> cellular_callback_; |
| + |
| + // Indicates whether network connection is cellular or not. |
| + // Default value is |true| because cellular mode is more conservative. |
| + bool is_cellular_connection_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(MetricsReportingScheduler); |
| }; |