// file_watcher.cc - Hot-reload file change detection (debug only) #include "file_watcher.h" #if !defined(STRIP_ALL) #include void FileWatcher::add_file(const char* path) { WatchEntry entry; entry.path = path; entry.last_mtime = get_mtime(path); entry.changed = false; files_.push_back(entry); } bool FileWatcher::check_changes() { bool any_changed = false; for (auto& entry : files_) { time_t current_mtime = get_mtime(entry.path.c_str()); if (current_mtime != entry.last_mtime && current_mtime != 0) { entry.changed = true; entry.last_mtime = current_mtime; any_changed = true; } } return any_changed; } void FileWatcher::reset() { for (auto& entry : files_) { entry.changed = false; } } time_t FileWatcher::get_mtime(const char* path) { struct stat st; if (stat(path, &st) == 0) { return st.st_mtime; } return 0; } #endif // !defined(STRIP_ALL)