1// Copyright 2013 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 CONTENT_CHILD_FILEAPI_WEBFILESYSTEM_IMPL_H_
6#define CONTENT_CHILD_FILEAPI_WEBFILESYSTEM_IMPL_H_
7
8#include "base/basictypes.h"
9#include "base/compiler_specific.h"
10#include "base/memory/ref_counted.h"
11#include "third_party/WebKit/public/platform/WebFileSystem.h"
12
13namespace base {
14class MessageLoopProxy;
15}
16
17namespace WebKit {
18class WebURL;
19class WebFileWriter;
20class WebFileWriterClient;
21}
22
23namespace content {
24
25class WebFileSystemImpl : public WebKit::WebFileSystem {
26 public:
27  explicit WebFileSystemImpl(base::MessageLoopProxy* main_thread_loop);
28  virtual ~WebFileSystemImpl();
29
30  // WebFileSystem implementation.
31  virtual void move(
32      const WebKit::WebURL& src_path,
33      const WebKit::WebURL& dest_path,
34      WebKit::WebFileSystemCallbacks*) OVERRIDE;
35  virtual void copy(
36      const WebKit::WebURL& src_path,
37      const WebKit::WebURL& dest_path,
38      WebKit::WebFileSystemCallbacks*) OVERRIDE;
39  virtual void remove(
40      const WebKit::WebURL& path,
41      WebKit::WebFileSystemCallbacks*) OVERRIDE;
42  virtual void removeRecursively(
43      const WebKit::WebURL& path,
44      WebKit::WebFileSystemCallbacks*) OVERRIDE;
45  virtual void readMetadata(
46      const WebKit::WebURL& path,
47      WebKit::WebFileSystemCallbacks*) OVERRIDE;
48  virtual void createFile(
49      const WebKit::WebURL& path,
50      bool exclusive,
51      WebKit::WebFileSystemCallbacks*) OVERRIDE;
52  virtual void createDirectory(
53      const WebKit::WebURL& path,
54      bool exclusive,
55      WebKit::WebFileSystemCallbacks*) OVERRIDE;
56  virtual void fileExists(
57      const WebKit::WebURL& path,
58      WebKit::WebFileSystemCallbacks*) OVERRIDE;
59  virtual void directoryExists(
60      const WebKit::WebURL& path,
61      WebKit::WebFileSystemCallbacks*) OVERRIDE;
62  virtual void readDirectory(
63      const WebKit::WebURL& path,
64      WebKit::WebFileSystemCallbacks*) OVERRIDE;
65  virtual WebKit::WebFileWriter* createFileWriter(
66      const WebKit::WebURL& path, WebKit::WebFileWriterClient*) OVERRIDE;
67  virtual void createFileWriter(
68      const WebKit::WebURL& path,
69      WebKit::WebFileWriterClient*,
70      WebKit::WebFileSystemCallbacks*) OVERRIDE;
71  virtual void createSnapshotFileAndReadMetadata(
72      const WebKit::WebURL& path,
73      WebKit::WebFileSystemCallbacks*);
74
75 private:
76  scoped_refptr<base::MessageLoopProxy> main_thread_loop_;
77};
78
79}  // namespace content
80
81#endif  // CONTENT_CHILD_FILEAPI_WEBFILESYSTEM_IMPL_H_
82