provided_file_system_interface.h revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
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_INTERFACE_H_
6#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
7
8#include "webkit/browser/fileapi/async_file_util.h"
9
10class EventRouter;
11
12namespace base {
13class FilePath;
14}  // namespace base
15
16namespace chromeos {
17namespace file_system_provider {
18
19class ProvidedFileSystemInfo;
20class RequestManager;
21
22// Interface for a provided file system. Acts as a proxy between providers
23// and clients.
24// TODO(mtomasz): Add more methods once implemented.
25class ProvidedFileSystemInterface {
26 public:
27  virtual ~ProvidedFileSystemInterface() {}
28
29  // Requests unmounting of the file system. The callback is called when the
30  // request is accepted or rejected, with an error code.
31  virtual void RequestUnmount(
32      const fileapi::AsyncFileUtil::StatusCallback& callback) = 0;
33
34  // Returns a provided file system info for this file system.
35  virtual const ProvidedFileSystemInfo& GetFileSystemInfo() const = 0;
36
37  // Returns a request manager for the file system.
38  virtual RequestManager* GetRequestManager() = 0;
39};
40
41}  // namespace file_system_provider
42}  // namespace chromeos
43
44#endif  // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_PROVIDED_FILE_SYSTEM_INTERFACE_H_
45