Differential D36179 Diff 109344 www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__path__watcher__freebsd.cc
Changeset View
Changeset View
Standalone View
Standalone View
www/qt6-webengine/files/patch-src_3rdparty_chromium_base_files_file__path__watcher__freebsd.cc
- This file was added.
--- src/3rdparty/chromium/base/files/file_path_watcher_freebsd.cc.orig 2021-12-19 15:24:51 UTC | |||||
+++ src/3rdparty/chromium/base/files/file_path_watcher_freebsd.cc | |||||
@@ -0,0 +1,61 @@ | |||||
+// Copyright (c) 2012 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 file exists for Unix systems which don't have the inotify headers, and | |||||
+// thus cannot build file_watcher_inotify.cc | |||||
+ | |||||
+#include <memory> | |||||
+ | |||||
+#include "base/files/file_path_watcher.h" | |||||
+#include "base/files/file_path_watcher_kqueue.h" | |||||
+ | |||||
+#include "base/memory/ptr_util.h" | |||||
+#include "build/build_config.h" | |||||
+ | |||||
+namespace base { | |||||
+ | |||||
+namespace { | |||||
+ | |||||
+class FilePathWatcherImpl : public FilePathWatcher::PlatformDelegate { | |||||
+ public: | |||||
+ FilePathWatcherImpl() = default; | |||||
+ FilePathWatcherImpl(const FilePathWatcherImpl&) = delete; | |||||
+ FilePathWatcherImpl& operator=(const FilePathWatcherImpl&) = delete; | |||||
+ ~FilePathWatcherImpl() override = default; | |||||
+ | |||||
+ bool Watch(const FilePath& path, | |||||
+ Type type, | |||||
+ const FilePathWatcher::Callback& callback) override { | |||||
+ DCHECK(!impl_.get()); | |||||
+ | |||||
+ if (type == Type::kRecursive) { | |||||
+ return false; | |||||
+ } else { | |||||
+ impl_ = std::make_unique<FilePathWatcherKQueue>(); | |||||
+ } | |||||
+ | |||||
+ DCHECK(impl_.get()); | |||||
+ | |||||
+ return impl_->Watch(path, type, callback); | |||||
+ } | |||||
+ | |||||
+ void Cancel() override { | |||||
+ if (impl_.get()) | |||||
+ impl_->Cancel(); | |||||
+ | |||||
+ set_cancelled(); | |||||
+ } | |||||
+ | |||||
+ private: | |||||
+ std::unique_ptr<PlatformDelegate> impl_; | |||||
+}; | |||||
+ | |||||
+} // namespace | |||||
+ | |||||
+FilePathWatcher::FilePathWatcher() { | |||||
+ sequence_checker_.DetachFromSequence(); | |||||
+ impl_ = std::make_unique<FilePathWatcherImpl>(); | |||||
+} | |||||
+ | |||||
+} // namespace base |