Home | History | Annotate | Download | only in files
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Cross platform methods for FilePathWatcher. See the various platform
      6 // specific implementation files, too.
      7 
      8 #include "base/files/file_path_watcher.h"
      9 
     10 #include "base/logging.h"
     11 #include "base/message_loop/message_loop.h"
     12 
     13 namespace base {
     14 
     15 FilePathWatcher::~FilePathWatcher() {
     16   impl_->Cancel();
     17 }
     18 
     19 // static
     20 void FilePathWatcher::CancelWatch(
     21     const scoped_refptr<PlatformDelegate>& delegate) {
     22   delegate->CancelOnMessageLoopThread();
     23 }
     24 
     25 FilePathWatcher::PlatformDelegate::PlatformDelegate(): cancelled_(false) {
     26 }
     27 
     28 FilePathWatcher::PlatformDelegate::~PlatformDelegate() {
     29   DCHECK(is_cancelled());
     30 }
     31 
     32 bool FilePathWatcher::Watch(const FilePath& path,
     33                             bool recursive,
     34                             const Callback& callback) {
     35   DCHECK(path.IsAbsolute());
     36   return impl_->Watch(path, recursive, callback);
     37 }
     38 
     39 }  // namespace base
     40