blob: 9b125ac34cece269c77afb21d95ab0e89bea0606 [file] [log] [blame]
// Copyright 2016 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_OFFLINE_PAGES_BACKGROUND_PICK_REQUEST_TASK_FACTORY_H_
#define COMPONENTS_OFFLINE_PAGES_BACKGROUND_PICK_REQUEST_TASK_FACTORY_H_
#include <stdint.h>
#include <set>
#include "components/offline_pages/background/pick_request_task.h"
namespace offline_pages {
class OfflinerPolicy;
class RequestCoordinatorEventLogger;
class RequestNotifier;
class RequestQueueStore;
class PickRequestTaskFactory {
public:
PickRequestTaskFactory(OfflinerPolicy* policy,
RequestNotifier* notifier,
RequestCoordinatorEventLogger* event_logger);
~PickRequestTaskFactory();
std::unique_ptr<PickRequestTask> CreatePickerTask(
RequestQueueStore* store,
const PickRequestTask::RequestPickedCallback& picked_callback,
const PickRequestTask::RequestNotPickedCallback& not_picked_callback,
const PickRequestTask::RequestCountCallback& request_count_callback,
DeviceConditions& conditions,
std::set<int64_t>& disabled_requests);
private:
// Unowned pointer to the Policy
OfflinerPolicy* policy_;
// Unowned pointer to the notifier
RequestNotifier* notifier_;
// Unowned pointer to the EventLogger
RequestCoordinatorEventLogger* event_logger_;
};
} // namespace offline_pages
#endif // COMPONENTS_OFFLINE_PAGES_BACKGROUND_PICK_REQUEST_TASK_FACTORY_H_