summaryrefslogtreecommitdiffstats
path: root/webkit/browser/fileapi/file_observers.h
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-24 13:58:04 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-24 13:58:04 +0000
commitf25e11329690f7589388d58570ac9520043b26ea (patch)
treebbe3139f8fcb345f95c3dae002d9388e72b834eb /webkit/browser/fileapi/file_observers.h
parent65a7db3c2f9dbc2e8a0bbbcf08ad00b94614d790 (diff)
downloadchromium_src-f25e11329690f7589388d58570ac9520043b26ea.zip
chromium_src-f25e11329690f7589388d58570ac9520043b26ea.tar.gz
chromium_src-f25e11329690f7589388d58570ac9520043b26ea.tar.bz2
Move more browser-specific webkit/fileapi code to webkit/browser/fileapi
Moves following files (25 files, 55/130 -> 80/130): - external_mount_points* - file_observers.h - file_system_task_runners* - isolated_context* - isolated_mount_point_provider* - local_file_system_operation* - mock_* - mount_points* - task_runner_bound_observer_list.h BUG=239710 TBR=tzik@chromium.org Review URL: https://codereview.chromium.org/15994002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202079 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/browser/fileapi/file_observers.h')
-rw-r--r--webkit/browser/fileapi/file_observers.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/webkit/browser/fileapi/file_observers.h b/webkit/browser/fileapi/file_observers.h
new file mode 100644
index 0000000..873156f
--- /dev/null
+++ b/webkit/browser/fileapi/file_observers.h
@@ -0,0 +1,83 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_BROWSER_FILEAPI_FILE_OBSERVERS_H_
+#define WEBKIT_BROWSER_FILEAPI_FILE_OBSERVERS_H_
+
+#include "base/basictypes.h"
+#include "webkit/storage/webkit_storage_export.h"
+
+// TODO(kinuko): Split this file into per-observer multiple files.
+
+namespace fileapi {
+
+class FileSystemURL;
+
+// An abstract interface to observe update operations.
+//
+// OnStartUpdate and OnEndUpdate are called once for each target url
+// before and after following operations regardless of whether the operation
+// is made recursively or not (i.e. StartUpdate() will be called only once
+// for destination url regardless of whether it is recursive copy or not):
+// CreateFile(), CreateDirectory(),
+// Copy() (destination only),
+// Move() (both for source and destination),
+// Remove(), Write(), Truncate(), TouchFile()
+//
+// OnUpdate() is called each time the |url| is updated but works only for
+// sandboxed files (where usage is tracked).
+class WEBKIT_STORAGE_EXPORT FileUpdateObserver {
+ public:
+ FileUpdateObserver() {}
+ virtual ~FileUpdateObserver() {}
+
+ virtual void OnStartUpdate(const FileSystemURL& url) = 0;
+ virtual void OnUpdate(const FileSystemURL& url, int64 delta) = 0;
+ virtual void OnEndUpdate(const FileSystemURL& url) = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(FileUpdateObserver);
+};
+
+// An abstract interface to observe file access.
+// OnAccess is called whenever an operation reads file contents or metadata.
+// (It is called only once per operation regardless of whether the operation
+// is recursive or not)
+class WEBKIT_STORAGE_EXPORT FileAccessObserver {
+ public:
+ FileAccessObserver() {}
+ virtual ~FileAccessObserver() {}
+
+ virtual void OnAccess(const FileSystemURL& url) = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(FileAccessObserver);
+};
+
+// An abstract interface to observe file changes.
+// Each method of this class is called once per file/directory is created,
+// removed or modified. For recursive operations each method is called for
+// each subdirectory/subfile. Currently ChangeObserver is only supported
+// by the local sandbox file system.
+class WEBKIT_STORAGE_EXPORT FileChangeObserver {
+ public:
+ FileChangeObserver() {}
+ virtual ~FileChangeObserver() {}
+
+ virtual void OnCreateFile(const FileSystemURL& url) = 0;
+ virtual void OnCreateFileFrom(const FileSystemURL& url,
+ const FileSystemURL& src) = 0;
+ virtual void OnRemoveFile(const FileSystemURL& url) = 0;
+ virtual void OnModifyFile(const FileSystemURL& url) = 0;
+
+ virtual void OnCreateDirectory(const FileSystemURL& url) = 0;
+ virtual void OnRemoveDirectory(const FileSystemURL& url) = 0;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(FileChangeObserver);
+};
+
+} // namespace fileapi
+
+#endif // WEBKIT_BROWSER_FILEAPI_FILE_OBSERVERS_H_