| 1234567891011121314151617181920212223242526272829303132333435 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <functional>
- #include <memory>
- #include <string>
- #include <vector>
- #include <cm3p/uv.h>
- class cmRootWatcher;
- class cmFileMonitor
- {
- public:
- cmFileMonitor(uv_loop_t* l);
- ~cmFileMonitor();
- cmFileMonitor(cmFileMonitor const&) = delete;
- cmFileMonitor& operator=(cmFileMonitor const&) = delete;
- using Callback = std::function<void(const std::string&, int, int)>;
- void MonitorPaths(const std::vector<std::string>& paths, Callback const& cb);
- void StopMonitoring();
- std::vector<std::string> WatchedFiles() const;
- std::vector<std::string> WatchedDirectories() const;
- private:
- std::unique_ptr<cmRootWatcher> Root;
- };
|