chromium/components/download/internal/background_service/scheduler/scheduler_impl.h

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

#ifndef COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_SCHEDULER_IMPL_H_
#define COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_SCHEDULER_IMPL_H_

#include "base/memory/raw_ptr.h"
#include "components/download/internal/background_service/scheduler/scheduler.h"

#include <map>
#include <vector>

#include "components/download/internal/background_service/entry.h"

namespace download {

class ClientSet;
class TaskScheduler;
struct Configuration;

// Scheduler implementation that
// 1. Creates platform background task based on the states of download entries.
// 2. Polls the next entry to be processed by the service mainly according to
// scheduling parameters and current device status.
//
// Provides load balancing between download clients using the service.
class SchedulerImpl : public Scheduler {};

}  // namespace download

#endif  // COMPONENTS_DOWNLOAD_INTERNAL_BACKGROUND_SERVICE_SCHEDULER_SCHEDULER_IMPL_H_