// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/component_updater/timer_update_scheduler.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"

namespace component_updater {

TimerUpdateScheduler::TimerUpdateScheduler() = default;
TimerUpdateScheduler::~TimerUpdateScheduler() = default;

void TimerUpdateScheduler::Schedule(const base::TimeDelta& initial_delay,
                                    const base::TimeDelta& delay,
                                    const UserTask& user_task,
                                    const OnStopTaskCallback& on_stop) {
  timer_.Start(
      initial_delay, delay,
      base::BindRepeating(
          [](const UserTask& user_task) { user_task.Run(base::DoNothing()); },
          user_task));
}

void TimerUpdateScheduler::Stop() {
  timer_.Stop();
}

}  // namespace component_updater
