File_Watcher module

init

procedure2 overloadsSource

Sets up watcher and returns whether that worked. Call it on an empty watcher, once; afterwards add folders with add_directories.

It returns false, and leaves the watcher empty, for a null callback, a negative or non-finite window, a buffer size of 0 or less, or when the system refuses. Calling it on a watcher that is already set up fails an assertion. Pair each successful call with deinit.

Example
on_change :: (watcher: *File_Watcher(void), change: *File_Change, data: *void) {}

watcher: File_Watcher;
assert(!init(*watcher, on_change, merge_window_seconds = -1));
assert(!init(*watcher, on_change, event_buffer_size = 0));
deinit(*watcher); // nothing was set up, so nothing to release

Doesn't run in the browser (skipped on wasm).

init :: (
    watcher: *$T/File_Watcher,
    callback: T.File_Watcher_Callback,
    user_data: *T.User_Data = null,
    events_to_watch: File_Change_Event = .ALL_EVENTS,
    merge_window_seconds: float = 0.1,
    watch_recursively := true,
    verbose := false,
    event_buffer_size: s32 = DEFAULT_BUFFER_SIZE
) -> success: bool

Parameters

watcher: *$T/File_Watcher
callback: T.File_Watcher_Callback
user_data: *T.User_Data = null
events_to_watch: File_Change_Event = .ALL_EVENTS
merge_window_seconds: float = 0.1
watch_recursively := true
verbose := false
event_buffer_size: s32 = DEFAULT_BUFFER_SIZE

Returns

success: bool
init :: (
    watcher: *$T/File_Watcher,
    callback: T.File_Watcher_Callback,
    user_data: *T.User_Data = null,
    events_to_watch: File_Change_Event = .ALL_EVENTS,
    merge_window_seconds: float = 0.1,
    watch_recursively := true,
    verbose := false,
    event_buffer_size: s32 = DEFAULT_BUFFER_SIZE
) -> success: bool

Parameters

watcher: *$T/File_Watcher
callback: T.File_Watcher_Callback
user_data: *T.User_Data = null
events_to_watch: File_Change_Event = .ALL_EVENTS
merge_window_seconds: float = 0.1
watch_recursively := true
verbose := false
event_buffer_size: s32 = DEFAULT_BUFFER_SIZE

Returns

success: bool

See also