| Index: base/files/file_path_watcher.cc
|
| diff --git a/base/files/file_path_watcher.cc b/base/files/file_path_watcher.cc
|
| index 086da1e6968c542f7b5632e47d7727d87beeb060..dd2b37fc78d80a937c00afcb803cfc784970047b 100644
|
| --- a/base/files/file_path_watcher.cc
|
| +++ b/base/files/file_path_watcher.cc
|
| @@ -13,6 +13,33 @@
|
| namespace base {
|
| namespace files {
|
|
|
| +namespace {
|
| +
|
| +// A delegate implementation for the callback interface.
|
| +class FilePathWatcherDelegate : public base::files::FilePathWatcher::Delegate {
|
| + public:
|
| + explicit FilePathWatcherDelegate(const FilePathWatcher::Callback& callback)
|
| + : callback_(callback) {}
|
| +
|
| + // FilePathWatcher::Delegate implementation.
|
| + virtual void OnFilePathChanged(const FilePath& path) OVERRIDE {
|
| + callback_.Run(path, false);
|
| + }
|
| +
|
| + virtual void OnFilePathError(const FilePath& path) OVERRIDE {
|
| + callback_.Run(path, true);
|
| + }
|
| +
|
| + private:
|
| + virtual ~FilePathWatcherDelegate() {}
|
| +
|
| + FilePathWatcher::Callback callback_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FilePathWatcherDelegate);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| FilePathWatcher::~FilePathWatcher() {
|
| impl_->Cancel();
|
| }
|
| @@ -35,5 +62,9 @@ FilePathWatcher::PlatformDelegate::~PlatformDelegate() {
|
| DCHECK(is_cancelled());
|
| }
|
|
|
| +bool FilePathWatcher::Watch(const FilePath& path, const Callback& callback) {
|
| + return Watch(path, new FilePathWatcherDelegate(callback));
|
| +}
|
| +
|
| } // namespace files
|
| } // namespace base
|
|
|