Pike v8.1 release 6

Class Filesystem.Monitor.basic

Inheritance graph
Filesystem.Monitor.basic Filesystem.Monitor.symlinks
Description

Basic filesystem monitor.

This module is intended to be used for incremental scanning of a filesystem.

Supports FSEvents on MacOS X and Inotify on Linux to provide low overhead monitoring; other systems use a less efficient polling approach.

See also

System.FSEvents, System.Inotify


Variable backend

protected Pike.Backend Filesystem.Monitor.basic.backend

Description

Backend to use.

If 0 (zero) - use the default backend.


Variable co_id

protected mixed Filesystem.Monitor.basic.co_id

Description

Call-out identifier for backend_check() if in nonblocking mode.

Set to 1 when non_blocking mode without call_outs is in use.

See also

set_nonblocking(), set_blocking()


Constant default_file_interval_factor

protected constant int Filesystem.Monitor.basic.default_file_interval_factor

Description

The default factor to multiply default_max_dir_check_interval with to get the maximum number of seconds between checks of files.

The value can be changed by calling create().

The value can be overridden for individual files or directories by calling monitor().

Overload this constant to change the default.


Constant default_max_dir_check_interval

protected constant int Filesystem.Monitor.basic.default_max_dir_check_interval

Description

The default maximum number of seconds between checks of directories in seconds.

This value is multiplied with default_file_interval_factor to get the corresponding default maximum number of seconds for files.

The value can be changed by calling create().

The value can be overridden for individual files or directories by calling monitor().

Overload this constant to change the default.


Constant default_stable_time

protected constant int Filesystem.Monitor.basic.default_stable_time

Description

The default minimum number of seconds without changes for a change to be regarded as stable (see stable_data_change().


Variable monitor_mutex

protected Thread.Mutex Filesystem.Monitor.basic.monitor_mutex

Description

Mutex controlling access to monitor_queue.


Variable monitor_queue

protected ADT.Heap Filesystem.Monitor.basic.monitor_queue

Description

Heap containing active Monitors that need polling.

The heap is sorted on Monitor()->next_poll.


Variable monitors

protected mapping(string:Monitor) Filesystem.Monitor.basic.monitors

Description

Mapping from monitored path to corresponding Monitor.

The paths are normalized to canonic_path(path),

Note

All filesystems are handled as if case-sensitive. This should not be a problem for case-insensitive filesystems as long as case is maintained.


Method create

Filesystem.Monitor.basic Filesystem.Monitor.basic(int|void max_dir_check_interval, int|void file_interval_factor, int|void stable_time)

Description

Create a new monitor.

Parameter max_dir_check_interval

Override of default_max_dir_check_interval.

Parameter file_interval_factor

Override of default_file_interval_factor.

Parameter stable_time

Override of default_stable_time.