103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file.
403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/browser/chromeos/file_system_provider/operations/abort.h"
603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include <string>
803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/common/extensions/api/file_system_provider.h"
1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/common/extensions/api/file_system_provider_internal.h"
1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace chromeos {
1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace file_system_provider {
1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace operations {
1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)Abort::Abort(extensions::EventRouter* event_router,
1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)             const ProvidedFileSystemInfo& file_system_info,
1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)             int operation_request_id,
1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)             const storage::AsyncFileUtil::StatusCallback& callback)
2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    : Operation(event_router, file_system_info),
2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      operation_request_id_(operation_request_id),
2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      callback_(callback) {
2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)Abort::~Abort() {
2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)bool Abort::Execute(int request_id) {
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  using extensions::api::file_system_provider::AbortRequestedOptions;
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  AbortRequestedOptions options;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  options.file_system_id = file_system_info_.file_system_id();
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  options.request_id = request_id;
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  options.operation_request_id = operation_request_id_;
3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  return SendEvent(
3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      request_id,
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)      extensions::api::file_system_provider::OnAbortRequested::kEventName,
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      extensions::api::file_system_provider::OnAbortRequested::Create(options));
4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void Abort::OnSuccess(int /* request_id */,
4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                      scoped_ptr<RequestValue> /* result */,
4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                      bool has_more) {
4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  callback_.Run(base::File::FILE_OK);
4603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
4703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
4803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void Abort::OnError(int /* request_id */,
4903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                    scoped_ptr<RequestValue> /* result */,
5003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                    base::File::Error error) {
5103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  callback_.Run(error);
5203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}
5303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
5403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace operations
5503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace file_system_provider
5603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace chromeos
57