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