|  | // Copyright 2018 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_COMPONENT_UPDATER_TIMER_UPDATE_SCHEDULER_H_ | 
|  | #define COMPONENTS_COMPONENT_UPDATER_TIMER_UPDATE_SCHEDULER_H_ | 
|  |  | 
|  | #include "base/callback.h" | 
|  | #include "base/macros.h" | 
|  | #include "components/component_updater/timer.h" | 
|  | #include "components/component_updater/update_scheduler.h" | 
|  |  | 
|  | namespace component_updater { | 
|  |  | 
|  | // Scheduler that uses base::Timer to schedule updates. | 
|  | class TimerUpdateScheduler : public UpdateScheduler { | 
|  | public: | 
|  | TimerUpdateScheduler(); | 
|  | ~TimerUpdateScheduler() override; | 
|  |  | 
|  | // UpdateScheduler: | 
|  | void Schedule(const base::TimeDelta& initial_delay, | 
|  | const base::TimeDelta& delay, | 
|  | const UserTask& user_task, | 
|  | const OnStopTaskCallback& on_stop) override; | 
|  | void Stop() override; | 
|  |  | 
|  | private: | 
|  | Timer timer_; | 
|  | base::RepeatingClosure user_task_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(TimerUpdateScheduler); | 
|  | }; | 
|  |  | 
|  | }  // namespace component_updater | 
|  |  | 
|  | #endif  // COMPONENTS_COMPONENT_UPDATER_TIMER_UPDATE_SCHEDULER_H_ |