// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ash/file_system_provider/operations/operation.h"
#include <utility>
#include "base/functional/bind.h"
#include "chrome/browser/ash/file_system_provider/provided_file_system_info.h"
#include "chrome/browser/ash/file_system_provider/request_dispatcher.h"
#include "extensions/browser/event_router.h"
namespace ash::file_system_provider::operations {
namespace {
} // namespace
Operation::Operation(RequestDispatcher* dispatcher,
const ProvidedFileSystemInfo& file_system_info)
: file_system_info_(file_system_info), request_dispatcher_(dispatcher) {}
Operation::~Operation() = default;
bool Operation::SendEvent(int request_id,
extensions::events::HistogramValue histogram_value,
const std::string& event_name,
base::Value::List event_args) {
auto event = std::make_unique<extensions::Event>(histogram_value, event_name,
std::move(event_args));
return request_dispatcher_->DispatchRequest(
request_id, file_system_info_.file_system_id(), std::move(event));
}
void Operation::OnAbort(int request_id) {
request_dispatcher_->CancelRequest(request_id,
file_system_info_.file_system_id());
}
} // namespace ash::file_system_provider::operations