#pragma once #include #include #include #include #include #define DMON_MAX_WATCHES 256 #include "vendor/dmon/dmon.h" typedef std::function CallbackFunction; class DMonWrapper { struct CallbackContext { CallbackFunction callback; }; static bool DMON_INITIALIZED; static std::mutex DMON_MUTEX; std::map m_callbacks; public: DMonWrapper(); ~DMonWrapper(); dmon_watch_id Watch(const std::filesystem::path& path, CallbackFunction callback, bool recursive = false); void Unwatch(dmon_watch_id watchId); std::vector GetWatchIds(); };