5#if !defined(POLYPHASE_PLATFORM_ADDON)
12#include <unordered_map>
49 bool WatchDirectory(
const std::string& directory,
bool recursive =
true);
71 HANDLE directoryHandle;
72 OVERLAPPED overlapped;
78 std::vector<WatchInfo> mWatchInfos;
79 HANDLE mCompletionPort;
82 std::thread mWatcherThread;
83 std::atomic<bool> mRunning;
84 std::atomic<bool> mEnabled;
88 std::vector<FileChangeEvent> mPendingEvents;
89 std::mutex mEventsMutex;
92 std::unordered_map<std::string, uint64_t> mLastModifyTimes;
132 bool WatchDirectory(
const std::string&,
bool =
true) {
return false; }
void CreateFileWatcher()
Definition FileWatcher.cpp:26
std::function< void(const FileChangeEvent &)> FileChangeCallback
Definition FileWatcher.h:34
FileWatcher * GetFileWatcher()
Definition FileWatcher.cpp:21
void DestroyFileWatcher()
Definition FileWatcher.cpp:34
FileAction
Definition FileWatcher.h:20
Definition FileWatcher.h:37
FileWatcher()
Definition FileWatcher.cpp:43
~FileWatcher()
Definition FileWatcher.cpp:52
void SetFileChangeCallback(FileChangeCallback callback)
Definition FileWatcher.cpp:208
void UnwatchDirectory(const std::string &directory)
Definition FileWatcher.cpp:193
void SetEnabled(bool enabled)
Definition FileWatcher.cpp:221
void Shutdown()
Definition FileWatcher.cpp:78
bool Initialize()
Definition FileWatcher.cpp:57
void Update()
Definition FileWatcher.cpp:213
bool IsEnabled() const
Definition FileWatcher.h:62
bool WatchDirectory(const std::string &directory, bool recursive=true)
Definition FileWatcher.cpp:117
Definition FileWatcher.h:28
std::string filePath
Definition FileWatcher.h:29
std::string oldPath
Definition FileWatcher.h:31
FileAction action
Definition FileWatcher.h:30