5#if !defined(POLYPHASE_PLATFORM_ADDON)
12#include <unordered_map>
64 bool WatchDirectory(
const std::string& directory,
bool recursive =
true,
65 const std::vector<std::string>& extensions = {
".lua" });
88 bool recursive =
true;
89 std::vector<std::string> extensions;
94 int64_t lastSeenTime = 0;
95 int64_t lastEmittedTime = 0;
96 bool seenThisScan =
false;
100 void ProcessEvents();
103 void ScanDirRecursive(
const std::string& dir,
bool recursive,
const std::vector<std::string>& extensions,
104 std::vector<FileChangeEvent>& outEvents,
bool rebaseline, uint32_t depth = 0);
105 void QueueEvents(
const std::vector<FileChangeEvent>& events);
107 std::thread mWatcherThread;
108 std::atomic<bool> mRunning;
109 std::atomic<bool> mEnabled;
114 std::atomic<bool> mNeedsRebaseline;
118 std::vector<WatchDir> mWatchDirs;
119 std::mutex mWatchMutex;
121 std::vector<FileChangeEvent> mPendingEvents;
122 std::mutex mEventsMutex;
125 std::unordered_map<std::string, FileSnapshot> mSnapshots;
167 const std::vector<std::string>& = {}) {
return false; }
void CreateFileWatcher()
Definition FileWatcher.cpp:66
std::function< void(const FileChangeEvent &)> FileChangeCallback
Definition FileWatcher.h:30
FileWatcher * GetFileWatcher()
Definition FileWatcher.cpp:61
void DestroyFileWatcher()
Definition FileWatcher.cpp:74
FileAction
Definition FileWatcher.h:16
Definition FileWatcher.h:50
FileWatcher()
Definition FileWatcher.cpp:83
~FileWatcher()
Definition FileWatcher.cpp:90
void SetFileChangeCallback(FileChangeCallback callback)
Definition FileWatcher.cpp:234
void UnwatchDirectory(const std::string &directory)
Definition FileWatcher.cpp:195
void UnwatchAll()
Definition FileWatcher.cpp:217
void SetEnabled(bool enabled)
Definition FileWatcher.cpp:247
bool WatchDirectory(const std::string &directory, bool recursive=true, const std::vector< std::string > &extensions={ ".lua" })
Definition FileWatcher.cpp:153
void Shutdown()
Definition FileWatcher.cpp:109
bool Initialize()
Definition FileWatcher.cpp:95
void Update()
Definition FileWatcher.cpp:239
bool IsEnabled() const
Definition FileWatcher.h:82
Definition FileWatcher.h:24
std::string filePath
Definition FileWatcher.h:25
std::string oldPath
Definition FileWatcher.h:27
FileAction action
Definition FileWatcher.h:26