9#include <unordered_map>
46 bool WatchDirectory(
const std::string& directory,
bool recursive =
true);
68 HANDLE directoryHandle;
69 OVERLAPPED overlapped;
75 std::vector<WatchInfo> mWatchInfos;
76 HANDLE mCompletionPort;
79 std::thread mWatcherThread;
80 std::atomic<bool> mRunning;
81 std::atomic<bool> mEnabled;
85 std::vector<FileChangeEvent> mPendingEvents;
86 std::mutex mEventsMutex;
89 std::unordered_map<std::string, uint64_t> mLastModifyTimes;
void CreateFileWatcher()
Definition FileWatcher.cpp:19
std::function< void(const FileChangeEvent &)> FileChangeCallback
Definition FileWatcher.h:31
FileWatcher * GetFileWatcher()
Definition FileWatcher.cpp:14
void DestroyFileWatcher()
Definition FileWatcher.cpp:27
FileAction
Definition FileWatcher.h:17
Definition FileWatcher.h:34
FileWatcher()
Definition FileWatcher.cpp:36
~FileWatcher()
Definition FileWatcher.cpp:45
void SetFileChangeCallback(FileChangeCallback callback)
Definition FileWatcher.cpp:201
void UnwatchDirectory(const std::string &directory)
Definition FileWatcher.cpp:186
void SetEnabled(bool enabled)
Definition FileWatcher.cpp:214
void Shutdown()
Definition FileWatcher.cpp:71
bool Initialize()
Definition FileWatcher.cpp:50
void Update()
Definition FileWatcher.cpp:206
bool IsEnabled() const
Definition FileWatcher.h:59
bool WatchDirectory(const std::string &directory, bool recursive=true)
Definition FileWatcher.cpp:110
Definition FileWatcher.h:25
std::string filePath
Definition FileWatcher.h:26
std::string oldPath
Definition FileWatcher.h:28
FileAction action
Definition FileWatcher.h:27