blob: 8d2a00eb4b16e21f99834e5d68bbc963a79700a8 [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.
#include "components/offline_pages/background/pick_request_task_factory.h"
#include "components/offline_pages/background/offliner_policy.h"
#include "components/offline_pages/background/request_coordinator_event_logger.h"
#include "components/offline_pages/background/request_notifier.h"
namespace offline_pages {
// Capture the common parameters that we will need to make a pick task,
// and use them when making tasks. Create this once each session, and
// use it to build a picker task when needed.
PickRequestTaskFactory::PickRequestTaskFactory(
OfflinerPolicy* policy,
RequestNotifier* notifier,
RequestCoordinatorEventLogger* event_logger)
: policy_(policy), notifier_(notifier), event_logger_(event_logger) {}
PickRequestTaskFactory::~PickRequestTaskFactory() {}
std::unique_ptr<PickRequestTask> PickRequestTaskFactory::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) {
std::unique_ptr<PickRequestTask> task(new PickRequestTask(
store, policy_, notifier_, event_logger_, picked_callback,
not_picked_callback, request_count_callback, conditions,
disabled_requests));
return task;
}
} // namespace offline_pages