Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Unified Diff: content/common/file_path_watcher/file_path_watcher.h

Issue 6793020: Move FilePathWatcher to base/files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: use ::operator<< Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/file_path_watcher/OWNERS ('k') | content/common/file_path_watcher/file_path_watcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/file_path_watcher/file_path_watcher.h
diff --git a/content/common/file_path_watcher/file_path_watcher.h b/content/common/file_path_watcher/file_path_watcher.h
deleted file mode 100644
index 094b04f98e15bb6a580dbf450f8dc92b2910d333..0000000000000000000000000000000000000000
--- a/content/common/file_path_watcher/file_path_watcher.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright (c) 2011 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.
-
-// This module provides a way to monitor a file or directory for changes.
-
-#ifndef CONTENT_COMMON_FILE_PATH_WATCHER_FILE_PATH_WATCHER_H_
-#define CONTENT_COMMON_FILE_PATH_WATCHER_FILE_PATH_WATCHER_H_
-#pragma once
-
-#include "base/basictypes.h"
-#include "base/file_path.h"
-#include "base/memory/ref_counted.h"
-#include "base/message_loop_proxy.h"
-
-// This class lets you register interest in changes on a FilePath.
-// The delegate will get called whenever the file or directory referenced by the
-// FilePath is changed, including created or deleted. Due to limitations in the
-// underlying OS APIs, FilePathWatcher has slightly different semantics on OS X
-// than on Windows or Linux. FilePathWatcher on Linux and Windows will detect
-// modifications to files in a watched directory. FilePathWatcher on Mac will
-// detect the creation and deletion of files in a watched directory, but will
-// not detect modifications to those files. See file_path_watcher_mac.cc for
-// details.
-class FilePathWatcher {
- public:
- // Declares the callback client code implements to receive notifications. Note
- // that implementations of this interface should not keep a reference to the
- // corresponding FileWatcher object to prevent a reference cycle.
- class Delegate : public base::RefCountedThreadSafe<Delegate> {
- public:
- virtual ~Delegate() {}
- virtual void OnFilePathChanged(const FilePath& path) = 0;
- // Called when platform specific code detected an error. The watcher will
- // not call OnFilePathChanged for future changes.
- 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() {
- delegate_->CancelOnMessageLoopThread();
- }
- private:
- scoped_refptr<PlatformDelegate> delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(CancelTask);
- };
-
- // Used internally to encapsulate different members on different platforms.
- class PlatformDelegate : public base::RefCountedThreadSafe<PlatformDelegate> {
- public:
- PlatformDelegate();
-
- // Start watching for the given |path| and notify |delegate| about changes.
- virtual bool Watch(const FilePath& path,
- Delegate* delegate) WARN_UNUSED_RESULT = 0;
-
- // Stop watching. This is called from FilePathWatcher's dtor in order to
- // allow to shut down properly while the object is still alive.
- // It can be called from any thread.
- virtual void Cancel() = 0;
-
- protected:
- virtual ~PlatformDelegate();
-
- // Stop watching. This is only called on the thread of the appropriate
- // message loop. Since it can also be called more than once, it should
- // check |is_cancelled()| to avoid duplicate work.
- virtual void CancelOnMessageLoopThread() = 0;
-
- scoped_refptr<base::MessageLoopProxy> message_loop() const {
- return message_loop_;
- }
-
- void set_message_loop(base::MessageLoopProxy* loop) {
- message_loop_ = loop;
- }
-
- // Must be called before the PlatformDelegate is deleted.
- void set_cancelled() {
- cancelled_ = true;
- }
-
- bool is_cancelled() const {
- return cancelled_;
- }
-
- private:
- friend class base::RefCountedThreadSafe<PlatformDelegate>;
- friend class CancelTask;
-
- scoped_refptr<base::MessageLoopProxy> message_loop_;
- bool cancelled_;
- };
-
- private:
- scoped_refptr<PlatformDelegate> impl_;
-
- DISALLOW_COPY_AND_ASSIGN(FilePathWatcher);
-};
-
-#endif // CONTENT_COMMON_FILE_PATH_WATCHER_FILE_PATH_WATCHER_H_
« no previous file with comments | « content/common/file_path_watcher/OWNERS ('k') | content/common/file_path_watcher/file_path_watcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698