Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / drive / fileapi / async_file_util.h
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_DRIVE_FILEAPI_ASYNC_FILE_UTIL_H_
6 #define CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_ASYNC_FILE_UTIL_H_
7
8 #include "base/basictypes.h"
9 #include "base/callback.h"
10 #include "storage/browser/fileapi/async_file_util.h"
11
12 namespace drive {
13
14 class FileSystemInterface;
15
16 namespace internal {
17
18 // The implementation of storage::AsyncFileUtil for Drive File System.
19 class AsyncFileUtil : public storage::AsyncFileUtil {
20  public:
21   AsyncFileUtil();
22   virtual ~AsyncFileUtil();
23
24   // storage::AsyncFileUtil overrides.
25   virtual void CreateOrOpen(
26       scoped_ptr<storage::FileSystemOperationContext> context,
27       const storage::FileSystemURL& url,
28       int file_flags,
29       const CreateOrOpenCallback& callback) OVERRIDE;
30   virtual void EnsureFileExists(
31       scoped_ptr<storage::FileSystemOperationContext> context,
32       const storage::FileSystemURL& url,
33       const EnsureFileExistsCallback& callback) OVERRIDE;
34   virtual void CreateDirectory(
35       scoped_ptr<storage::FileSystemOperationContext> context,
36       const storage::FileSystemURL& url,
37       bool exclusive,
38       bool recursive,
39       const StatusCallback& callback) OVERRIDE;
40   virtual void GetFileInfo(
41       scoped_ptr<storage::FileSystemOperationContext> context,
42       const storage::FileSystemURL& url,
43       const GetFileInfoCallback& callback) OVERRIDE;
44   virtual void ReadDirectory(
45       scoped_ptr<storage::FileSystemOperationContext> context,
46       const storage::FileSystemURL& url,
47       const ReadDirectoryCallback& callback) OVERRIDE;
48   virtual void Touch(scoped_ptr<storage::FileSystemOperationContext> context,
49                      const storage::FileSystemURL& url,
50                      const base::Time& last_access_time,
51                      const base::Time& last_modified_time,
52                      const StatusCallback& callback) OVERRIDE;
53   virtual void Truncate(scoped_ptr<storage::FileSystemOperationContext> context,
54                         const storage::FileSystemURL& url,
55                         int64 length,
56                         const StatusCallback& callback) OVERRIDE;
57   virtual void CopyFileLocal(
58       scoped_ptr<storage::FileSystemOperationContext> context,
59       const storage::FileSystemURL& src_url,
60       const storage::FileSystemURL& dest_url,
61       CopyOrMoveOption option,
62       const CopyFileProgressCallback& progress_callback,
63       const StatusCallback& callback) OVERRIDE;
64   virtual void MoveFileLocal(
65       scoped_ptr<storage::FileSystemOperationContext> context,
66       const storage::FileSystemURL& src_url,
67       const storage::FileSystemURL& dest_url,
68       CopyOrMoveOption option,
69       const StatusCallback& callback) OVERRIDE;
70   virtual void CopyInForeignFile(
71       scoped_ptr<storage::FileSystemOperationContext> context,
72       const base::FilePath& src_file_path,
73       const storage::FileSystemURL& dest_url,
74       const StatusCallback& callback) OVERRIDE;
75   virtual void DeleteFile(
76       scoped_ptr<storage::FileSystemOperationContext> context,
77       const storage::FileSystemURL& url,
78       const StatusCallback& callback) OVERRIDE;
79   virtual void DeleteDirectory(
80       scoped_ptr<storage::FileSystemOperationContext> context,
81       const storage::FileSystemURL& url,
82       const StatusCallback& callback) OVERRIDE;
83   virtual void DeleteRecursively(
84       scoped_ptr<storage::FileSystemOperationContext> context,
85       const storage::FileSystemURL& url,
86       const StatusCallback& callback) OVERRIDE;
87   virtual void CreateSnapshotFile(
88       scoped_ptr<storage::FileSystemOperationContext> context,
89       const storage::FileSystemURL& url,
90       const CreateSnapshotFileCallback& callback) OVERRIDE;
91
92  private:
93   DISALLOW_COPY_AND_ASSIGN(AsyncFileUtil);
94 };
95
96 }  // namespace internal
97 }  // namespace drive
98
99 #endif  // CHROME_BROWSER_CHROMEOS_DRIVE_FILEAPI_ASYNC_FILE_UTIL_H_