4 #include <condition_variable> 6 #include <magic_enum/magic_enum.hpp> 8 #include "Mountain/core.hpp" 13 typedef unsigned long DWORD;
18 enum class FswNotifyFilters : uint8_t
21 DirectoryName = 1 << 1,
29 Default = Creation | FileName | DirectoryName | LastWrite,
31 All = FileName | DirectoryName | Attributes | Size | LastWrite | LastAccess | Creation | Security
43 std::chrono::milliseconds updateRate{750};
46 bool_t checkContents =
true;
49 bool_t recursive =
false;
54 FswNotifyFilters notifyFilters = FswNotifyFilters::Default;
64 MOUNTAIN_API
void Start();
66 MOUNTAIN_API
void Stop();
69 MOUNTAIN_API
void Update();
71 MOUNTAIN_API std::filesystem::path GetPath()
const;
73 MOUNTAIN_API
void SetPath(
const std::filesystem::path& newPath);
75 MOUNTAIN_API bool_t GetRunning()
const;
79 std::condition_variable m_CondVar;
82 std::filesystem::path m_Path;
83 bool_t m_IsDirectory =
false;
85 bool_t m_Running =
false;
87 bool_t m_PathChanged =
false;
91 static DWORD NotifyFiltersToWindows(FswNotifyFilters filters);
95 ENUM_FLAGS(Mountain::FswNotifyFilters)
Encapsulates a delegate system similar to its C# implementation.
List< std::string > fileExtensions
File extensions including the dot '.'.
Contains all declarations of the Mountain Framework.