Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / file_system_provider / provided_file_system.h
index 10aa0a9..6fffe4b 100644 (file)
@@ -5,41 +5,48 @@
 #ifndef CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
 #define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_H_
 
-#include <string>
+#include "chrome/browser/chromeos/file_system_provider/provided_file_system_info.h"
+#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
+#include "webkit/browser/fileapi/async_file_util.h"
 
-#include "base/files/file_path.h"
+namespace base {
+class FilePath;
+}  // namespace base
+
+namespace extensions {
+class EventRouter;
+}  // namespace extensions
 
 namespace chromeos {
 namespace file_system_provider {
 
-// Contains information about the provided file system instance.
-class ProvidedFileSystem {
+// Provided file system implementation. Forwards requests between providers and
+// clients.
+class ProvidedFileSystem : public ProvidedFileSystemInterface {
  public:
-  ProvidedFileSystem();
-  ProvidedFileSystem(const std::string& extension_id,
-                     int file_system_id,
-                     const std::string& file_system_name,
-                     const base::FilePath& mount_path);
-
-  ~ProvidedFileSystem();
-
-  const std::string& extension_id() const { return extension_id_; }
-  int file_system_id() const { return file_system_id_; }
-  const std::string& file_system_name() const { return file_system_name_; }
-  const base::FilePath& mount_path() const { return mount_path_; }
+  ProvidedFileSystem(extensions::EventRouter* event_router,
+                     const ProvidedFileSystemInfo& file_system_info);
+  virtual ~ProvidedFileSystem();
+
+  // ProvidedFileSystemInterface overrides.
+  virtual void RequestUnmount(
+      const fileapi::AsyncFileUtil::StatusCallback& callback) OVERRIDE;
+  virtual void GetMetadata(
+      const base::FilePath& entry_path,
+      const fileapi::AsyncFileUtil::GetFileInfoCallback& callback) OVERRIDE;
+  virtual void ReadDirectory(
+      const base::FilePath& directory_path,
+      const fileapi::AsyncFileUtil::ReadDirectoryCallback& callback) OVERRIDE;
+  virtual const ProvidedFileSystemInfo& GetFileSystemInfo() const OVERRIDE;
+  virtual RequestManager* GetRequestManager() OVERRIDE;
 
  private:
-  // ID of the extension providing this file system.
-  std::string extension_id_;
-
-  // ID of the file system, used internally.
-  int file_system_id_;
-
-  // Name of the file system, can be rendered in the UI.
-  std::string file_system_name_;
+  extensions::EventRouter* event_router_;
+  RequestManager request_manager_;
+  ProvidedFileSystemInfo file_system_info_;
 
-  // Mount path of the underlying file system.
-  base::FilePath mount_path_;
+  DISALLOW_COPY_AND_ASSIGN(ProvidedFileSystem);
 };
 
 }  // namespace file_system_provider