6fffe4b7eba9d0895c4163f11bc28e3611a3e212
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / file_system_provider / provided_file_system.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_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
6 #define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
7
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"
12
13 namespace base {
14 class FilePath;
15 }  // namespace base
16
17 namespace extensions {
18 class EventRouter;
19 }  // namespace extensions
20
21 namespace chromeos {
22 namespace file_system_provider {
23
24 // Provided file system implementation. Forwards requests between providers and
25 // clients.
26 class ProvidedFileSystem : public ProvidedFileSystemInterface {
27  public:
28   ProvidedFileSystem(extensions::EventRouter* event_router,
29                      const ProvidedFileSystemInfo& file_system_info);
30   virtual ~ProvidedFileSystem();
31
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;
43
44  private:
45   extensions::EventRouter* event_router_;
46   RequestManager request_manager_;
47   ProvidedFileSystemInfo file_system_info_;
48
49   DISALLOW_COPY_AND_ASSIGN(ProvidedFileSystem);
50 };
51
52 }  // namespace file_system_provider
53 }  // namespace chromeos
54
55 #endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_