1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_ABORT_H_
6#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_ABORT_H_
7
8#include "base/files/file.h"
9#include "base/memory/scoped_ptr.h"
10#include "chrome/browser/chromeos/file_system_provider/operations/operation.h"
11#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
12#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
13#include "chrome/browser/chromeos/file_system_provider/request_value.h"
14#include "storage/browser/fileapi/async_file_util.h"
15
16namespace base {
17class FilePath;
18}  // namespace base
19
20namespace extensions {
21class EventRouter;
22}  // namespace extensions
23
24namespace chromeos {
25namespace file_system_provider {
26namespace operations {
27
28// Aborts an operation. Created per request.
29class Abort : public Operation {
30 public:
31  Abort(extensions::EventRouter* event_router,
32        const ProvidedFileSystemInfo& file_system_info,
33        int operation_request_id,
34        const storage::AsyncFileUtil::StatusCallback& callback);
35  virtual ~Abort();
36
37  // Operation overrides.
38  virtual bool Execute(int request_id) OVERRIDE;
39  virtual void OnSuccess(int request_id,
40                         scoped_ptr<RequestValue> result,
41                         bool has_more) OVERRIDE;
42  virtual void OnError(int request_id,
43                       scoped_ptr<RequestValue> result,
44                       base::File::Error error) OVERRIDE;
45
46 private:
47  int operation_request_id_;
48  const storage::AsyncFileUtil::StatusCallback callback_;
49
50  DISALLOW_COPY_AND_ASSIGN(Abort);
51};
52
53}  // namespace operations
54}  // namespace file_system_provider
55}  // namespace chromeos
56
57#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_OPERATIONS_ABORT_H_
58