• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 WEBKIT_BROWSER_FILEAPI_ISOLATED_FILE_SYSTEM_BACKEND_H_
6 #define WEBKIT_BROWSER_FILEAPI_ISOLATED_FILE_SYSTEM_BACKEND_H_
7 
8 #include "base/memory/scoped_ptr.h"
9 #include "webkit/browser/fileapi/file_system_backend.h"
10 
11 namespace fileapi {
12 
13 class AsyncFileUtilAdapter;
14 
15 class IsolatedFileSystemBackend : public FileSystemBackend {
16  public:
17   IsolatedFileSystemBackend();
18   virtual ~IsolatedFileSystemBackend();
19 
20   // FileSystemBackend implementation.
21   virtual bool CanHandleType(FileSystemType type) const OVERRIDE;
22   virtual void Initialize(FileSystemContext* context) OVERRIDE;
23   virtual void ResolveURL(const FileSystemURL& url,
24                           OpenFileSystemMode mode,
25                           const OpenFileSystemCallback& callback) OVERRIDE;
26   virtual AsyncFileUtil* GetAsyncFileUtil(FileSystemType type) OVERRIDE;
27   virtual CopyOrMoveFileValidatorFactory* GetCopyOrMoveFileValidatorFactory(
28       FileSystemType type,
29       base::File::Error* error_code) OVERRIDE;
30   virtual FileSystemOperation* CreateFileSystemOperation(
31       const FileSystemURL& url,
32       FileSystemContext* context,
33       base::File::Error* error_code) const OVERRIDE;
34   virtual bool SupportsStreaming(const FileSystemURL& url) const OVERRIDE;
35   virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
36       const FileSystemURL& url,
37       int64 offset,
38       const base::Time& expected_modification_time,
39       FileSystemContext* context) const OVERRIDE;
40   virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
41       const FileSystemURL& url,
42       int64 offset,
43       FileSystemContext* context) const OVERRIDE;
44   virtual FileSystemQuotaUtil* GetQuotaUtil() OVERRIDE;
45 
46  private:
47   scoped_ptr<AsyncFileUtilAdapter> isolated_file_util_;
48   scoped_ptr<AsyncFileUtilAdapter> dragged_file_util_;
49   scoped_ptr<AsyncFileUtilAdapter> transient_file_util_;
50 };
51 
52 }  // namespace fileapi
53 
54 #endif  // WEBKIT_BROWSER_FILEAPI_ISOLATED_FILE_SYSTEM_BACKEND_H_
55