3#include <Foundation/Basics.h>
5#if PL_ENABLED(PL_SUPPORTS_DIRECTORY_WATCHER)
7# include <Foundation/Basics.h>
8# include <Foundation/Strings/String.h>
9# include <Foundation/Types/Bitflags.h>
10# include <Foundation/Types/Delegate.h>
15enum class plDirectoryWatcherAction
25enum class plDirectoryWatcherType
33class PL_FOUNDATION_DLL plDirectoryWatcher
39 using StorageType = plUInt8;
40 constexpr static plUInt8 Default = 0;
49 Subdirectories = PL_BIT(4),
54 StorageType Writes : 1;
55 StorageType Creates : 1;
56 StorageType Deletes : 1;
57 StorageType Renames : 1;
58 StorageType Subdirectories : 1;
63 plDirectoryWatcher(
const plDirectoryWatcher&) =
delete;
64 plDirectoryWatcher(plDirectoryWatcher&&) noexcept = delete;
65 ~plDirectoryWatcher();
67 plDirectoryWatcher& operator=(const plDirectoryWatcher&) = delete;
68 plDirectoryWatcher& operator=(plDirectoryWatcher&&) noexcept = delete;
78 void CloseDirectory();
82 plStringView GetDirectory()
const {
return m_sDirectoryPath; }
84 using EnumerateChangesFunction =
plDelegate<void(
plStringView sFilename, plDirectoryWatcherAction action, plDirectoryWatcherType type), 48>;
103PL_DECLARE_FLAGS_OPERATORS(plDirectoryWatcher::Watch);
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
A generic delegate class which supports static functions and member functions.
Definition Delegate.h:76
Definition DirectoryWatcher_Posix.h:677
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12
PL_ALWAYS_INLINE static constexpr plTime MakeZero()
Creates an instance of plTime that was initialized with zero.
Definition Time.h:42