5#if !defined(POLYPHASE_PLATFORM_ADDON)
12#include <unordered_map>
62 bool WatchDirectory(
const std::string& directory,
bool recursive =
true);
85 bool recursive =
true;
90 int64_t lastSeenTime = 0;
91 int64_t lastEmittedTime = 0;
92 bool seenThisScan =
false;
99 void ScanDirRecursive(
const std::string& dir,
bool recursive, std::vector<FileChangeEvent>& outEvents,
bool rebaseline, uint32_t depth = 0);
100 void QueueEvents(
const std::vector<FileChangeEvent>& events);
102 std::thread mWatcherThread;
103 std::atomic<bool> mRunning;
104 std::atomic<bool> mEnabled;
109 std::atomic<bool> mNeedsRebaseline;
113 std::vector<WatchDir> mWatchDirs;
114 std::mutex mWatchMutex;
116 std::vector<FileChangeEvent> mPendingEvents;
117 std::mutex mEventsMutex;
120 std::unordered_map<std::string, FileSnapshot> mSnapshots;
160 bool WatchDirectory(
const std::string&,
bool =
true) {
return false; }
void CreateFileWatcher()
Definition FileWatcher.cpp:53
std::function< void(const FileChangeEvent &)> FileChangeCallback
Definition FileWatcher.h:30
FileWatcher * GetFileWatcher()
Definition FileWatcher.cpp:48
void DestroyFileWatcher()
Definition FileWatcher.cpp:61
FileAction
Definition FileWatcher.h:16
Definition FileWatcher.h:50
FileWatcher()
Definition FileWatcher.cpp:70
~FileWatcher()
Definition FileWatcher.cpp:77
void SetFileChangeCallback(FileChangeCallback callback)
Definition FileWatcher.cpp:218
void UnwatchDirectory(const std::string &directory)
Definition FileWatcher.cpp:179
void UnwatchAll()
Definition FileWatcher.cpp:201
void SetEnabled(bool enabled)
Definition FileWatcher.cpp:231
void Shutdown()
Definition FileWatcher.cpp:96
bool Initialize()
Definition FileWatcher.cpp:82
void Update()
Definition FileWatcher.cpp:223
bool IsEnabled() const
Definition FileWatcher.h:79
bool WatchDirectory(const std::string &directory, bool recursive=true)
Definition FileWatcher.cpp:140
Definition FileWatcher.h:24
std::string filePath
Definition FileWatcher.h:25
std::string oldPath
Definition FileWatcher.h:27
FileAction action
Definition FileWatcher.h:26