diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 13:58:04 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-24 13:58:04 +0000 |
commit | f25e11329690f7589388d58570ac9520043b26ea (patch) | |
tree | bbe3139f8fcb345f95c3dae002d9388e72b834eb /webkit/browser/fileapi/file_observers.h | |
parent | 65a7db3c2f9dbc2e8a0bbbcf08ad00b94614d790 (diff) | |
download | chromium_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.h | 83 |
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_ |