/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include #include #include #include "cm_uv.h" class cmRootWatcher; class cmFileMonitor { public: cmFileMonitor(uv_loop_t* l); ~cmFileMonitor(); using Callback = std::function; void MonitorPaths(const std::vector& paths, Callback cb); void StopMonitoring(); std::vector WatchedFiles() const; std::vector WatchedDirectories() const; private: cmRootWatcher* Root; };