Index: base/files/file_path_watcher.h |
diff --git a/base/files/file_path_watcher.h b/base/files/file_path_watcher.h |
index ed174642b531c7e5300905850f9d10b7180623ab..9c27ce4605cd28accba4a3912df54227cf3c3c6c 100644 |
--- a/base/files/file_path_watcher.h |
+++ b/base/files/file_path_watcher.h |
@@ -40,37 +40,9 @@ class BASE_EXPORT FilePathWatcher { |
virtual void OnFilePathError(const FilePath& path) {} |
}; |
- FilePathWatcher(); |
- ~FilePathWatcher(); |
- |
- // Register interest in any changes on |path|. OnPathChanged will be called |
- // back for each change. Returns true on success. |
- // OnFilePathChanged() will be called on the same thread as Watch() is called, |
- // which should have a MessageLoop of TYPE_IO. |
- bool Watch(const FilePath& path, Delegate* delegate) WARN_UNUSED_RESULT; |
- |
- class PlatformDelegate; |
- |
- // A custom Task that always cleans up the PlatformDelegate, either when |
- // executed or when deleted without having been executed at all, as can |
- // happen during shutdown. |
- class CancelTask : public Task { |
- public: |
- CancelTask(PlatformDelegate* delegate): delegate_(delegate) {} |
- virtual ~CancelTask() { |
- delegate_->CancelOnMessageLoopThread(); |
- } |
- |
- virtual void Run() OVERRIDE { |
- delegate_->CancelOnMessageLoopThread(); |
- } |
- private: |
- scoped_refptr<PlatformDelegate> delegate_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CancelTask); |
- }; |
- |
// Used internally to encapsulate different members on different platforms. |
+ // TODO(jhawkins): Move this into its own file. Also fix the confusing naming |
+ // wrt Delegate vs PlatformDelegate. |
class PlatformDelegate : public base::RefCountedThreadSafe<PlatformDelegate> { |
public: |
PlatformDelegate(); |
@@ -85,6 +57,8 @@ class BASE_EXPORT FilePathWatcher { |
virtual void Cancel() = 0; |
protected: |
+ friend class FilePathWatcher; |
+ |
virtual ~PlatformDelegate(); |
// Stop watching. This is only called on the thread of the appropriate |
@@ -111,12 +85,25 @@ class BASE_EXPORT FilePathWatcher { |
private: |
friend class base::RefCountedThreadSafe<PlatformDelegate>; |
- friend class CancelTask; |
scoped_refptr<base::MessageLoopProxy> message_loop_; |
bool cancelled_; |
}; |
+ FilePathWatcher(); |
+ ~FilePathWatcher(); |
+ |
+ // A callback that always cleans up the PlatformDelegate, either when executed |
+ // or when deleted without having been executed at all, as can happen during |
+ // shutdown. |
+ static void CancelWatch(const scoped_refptr<PlatformDelegate>& delegate); |
+ |
+ // Register interest in any changes on |path|. OnPathChanged will be called |
+ // back for each change. Returns true on success. |
+ // OnFilePathChanged() will be called on the same thread as Watch() is called, |
+ // which should have a MessageLoop of TYPE_IO. |
+ bool Watch(const FilePath& path, Delegate* delegate) WARN_UNUSED_RESULT; |
+ |
private: |
scoped_refptr<PlatformDelegate> impl_; |