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

Unified Diff: components/metrics/metrics_reporting_scheduler.h

Issue 2770853002: Create Ukm ReportingService implementation. (Closed)
Patch Set: Also revert datatracker unittest change Created 3 years, 9 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 | « components/metrics/metrics_pref_names.cc ('k') | components/metrics/metrics_reporting_scheduler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/metrics/metrics_reporting_scheduler.h
diff --git a/components/metrics/metrics_reporting_scheduler.h b/components/metrics/metrics_reporting_scheduler.h
deleted file mode 100644
index e2a8463459249ddb6fa655f2e7f52be0c285c864..0000000000000000000000000000000000000000
--- a/components/metrics/metrics_reporting_scheduler.h
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_METRICS_METRICS_REPORTING_SCHEDULER_H_
-#define COMPONENTS_METRICS_METRICS_REPORTING_SCHEDULER_H_
-
-#include "base/callback.h"
-#include "base/macros.h"
-#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.
-// TODO(holte): Remove this once we've switched to split schedulers.
-class MetricsReportingScheduler {
- public:
- // Creates MetricsServiceScheduler object with the given |upload_callback|
- // callback to call when uploading should happen and
- // |upload_interval_callback| to determine the interval between uploads
- // in steady state.
- MetricsReportingScheduler(
- const base::Closure& upload_callback,
- const base::Callback<base::TimeDelta(void)>& upload_interval_callback);
- virtual ~MetricsReportingScheduler();
-
- // Starts scheduling uploads. This in a no-op if the scheduler is already
- // running, so it is safe to call more than once.
- void Start();
-
- // Stops scheduling uploads.
- void Stop();
-
- // Callback from MetricsService when the startup init task has completed.
- void InitTaskComplete();
-
- // Callback from MetricsService when a triggered upload finishes.
- void UploadFinished(bool server_is_healthy, bool more_logs_remaining);
-
- // Callback from MetricsService when a triggered upload is cancelled by the
- // MetricsService.
- void UploadCancelled();
-
- // Sets the upload interval to a specific value, exposed for unit tests.
- void SetUploadIntervalForTesting(base::TimeDelta interval);
-
- protected:
- enum InitSequence {
- TIMER_FIRED_FIRST,
- INIT_TASK_COMPLETED_FIRST,
- INIT_SEQUENCE_ENUM_SIZE,
- };
-
- private:
- // Record the init sequence order histogram.
- virtual void LogMetricsInitSequence(InitSequence sequence);
-
- // Record the upload interval time.
- virtual void LogActualUploadInterval(base::TimeDelta interval);
-
- // Timer callback indicating it's time for the MetricsService to upload
- // metrics.
- void TriggerUpload();
-
- // Schedules a future call to TriggerUpload if one isn't already pending.
- void ScheduleNextUpload();
-
- // Increases the upload interval each time it's called, to handle the case
- // where the server is having issues.
- void BackOffUploadInterval();
-
- // Returns upload interval to use in steady state.
- base::TimeDelta GetStandardUploadInterval();
-
- // The MetricsService method to call when uploading should happen.
- const base::Closure upload_callback_;
-
- base::OneShotTimer upload_timer_;
-
- // The interval between being told an upload is done and starting the next
- // upload.
- base::TimeDelta upload_interval_;
-
- // The tick count of the last time log upload has been finished and null if no
- // upload has been done yet.
- base::TimeTicks last_upload_finish_time_;
-
- // Indicates that the scheduler is running (i.e., that Start has been called
- // more recently than Stop).
- bool running_;
-
- // Indicates that the last triggered upload hasn't resolved yet.
- bool callback_pending_;
-
- // Whether the InitTaskComplete() callback has been called.
- bool init_task_complete_;
-
- // Whether the initial scheduled upload timer has fired before the init task
- // has been completed.
- bool waiting_for_init_task_complete_;
-
- // Callback function used to get the standard upload time.
- base::Callback<base::TimeDelta(void)> upload_interval_callback_;
-
- DISALLOW_COPY_AND_ASSIGN(MetricsReportingScheduler);
-};
-
-} // namespace metrics
-
-#endif // COMPONENTS_METRICS_METRICS_REPORTING_SCHEDULER_H_
« no previous file with comments | « components/metrics/metrics_pref_names.cc ('k') | components/metrics/metrics_reporting_scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698