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.
5 #ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
6 #define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
8 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
9 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
10 #include "chrome/browser/chromeos/file_system_provider/request_manager.h"
11 #include "webkit/browser/fileapi/async_file_util.h"
17 namespace extensions {
19 } // namespace extensions
22 namespace file_system_provider {
24 // Provided file system implementation. Forwards requests between providers and
26 class ProvidedFileSystem : public ProvidedFileSystemInterface {
28 ProvidedFileSystem(extensions::EventRouter* event_router,
29 const ProvidedFileSystemInfo& file_system_info);
30 virtual ~ProvidedFileSystem();
32 // ProvidedFileSystemInterface overrides.
33 virtual void RequestUnmount(
34 const fileapi::AsyncFileUtil::StatusCallback& callback) OVERRIDE;
35 virtual void GetMetadata(
36 const base::FilePath& entry_path,
37 const fileapi::AsyncFileUtil::GetFileInfoCallback& callback) OVERRIDE;
38 virtual void ReadDirectory(
39 const base::FilePath& directory_path,
40 const fileapi::AsyncFileUtil::ReadDirectoryCallback& callback) OVERRIDE;
41 virtual const ProvidedFileSystemInfo& GetFileSystemInfo() const OVERRIDE;
42 virtual RequestManager* GetRequestManager() OVERRIDE;
45 extensions::EventRouter* event_router_;
46 RequestManager request_manager_;
47 ProvidedFileSystemInfo file_system_info_;
49 DISALLOW_COPY_AND_ASSIGN(ProvidedFileSystem);
52 } // namespace file_system_provider
53 } // namespace chromeos
55 #endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_