fswatch 1.20.1
Loading...
Searching...
No Matches
fsw Namespace Reference

Main namespace of libfswatch. More...

Namespaces

namespace  string_utils
 This namespace contains string manipulation functions.
namespace  win_paths
 Path conversion functions.
namespace  win_strings
 String conversion functions.

Classes

struct  compiled_monitor_filter
class  directory_change_event
 Header of the fsw::directory_change_event class, a helper class to wrap Microsoft Windows' ReadDirectoryChangesW function and a common workflow to detect file system changes. More...
class  event
 Type representing a file change event. More...
class  fanotify_monitor
 Linux fanotify monitor. More...
struct  fanotify_monitor_impl
class  fen_monitor
 Solaris/Illumos monitor. More...
class  fsevents_monitor
 macOS FSEvents monitor. More...
class  inotify_monitor
 Solaris/Illumos monitor. More...
struct  inotify_monitor_impl
class  kqueue_monitor
 Solaris/Illumos monitor. More...
class  libfsw_exception
 Base exception of the libfswatch library. More...
class  monitor
 Base class of all monitors. More...
class  monitor_factory
 Object factory class for fsw::monitor instances. More...
class  poll_monitor
 stat()-based monitor. More...
struct  scoped_fd
class  win_error_message
 Helper class to get the system-defined error message for a Microsoft Windows' error code. More...
struct  win_flag_type
class  win_handle
 A RAII wrapper around Microsoft Windows HANDLE. More...
class  windows_monitor
 Windows monitor. More...

Typedefs

using monitor_filter
 Path filters used to accept or reject file change events.
using FSEventFlagType
template<typename K, typename V>
using fsw_hash_map = std::map<K, V>
 Default associative container type used by libfswatch.
template<typename K>
using fsw_hash_set = std::set<K>
 Default set type used by libfswatch.
typedef void FSW_EVENT_CALLBACK(const std::vector< event > &, void *)
 Function definition of an event callback.
using poll_monitor_data

Enumerations

enum class  process_id_kind { none = 0 , pid , tid }

Functions

ostream & operator<< (ostream &out, const fsw_event_flag flag)
std::ostream & operator<< (std::ostream &out, const fsw_event_flag flag)
 Overload of the << operator to print an event using iostreams.
static bool parse_filter (std::string filter, monitor_filter &filter_object, void(*err_handler)(std::string))
static bool is_unescaped_space (string &filter, long i)
static bool parse_filter (string filter, monitor_filter &filter_object, void(*err_handler)(string))
static vector< FSEventFlagType > create_flag_type_vector ()
static vector< fsw_event_flagdecode_flags (FSEventStreamEventFlags flag)
static int latency_to_timeout_ms (double latency)
static void add_epoll_interest (int epoll_fd, int fd)
static void drain_eventfd (int fd)
static monitorcreate_default_monitor (std::vector< std::string > paths, FSW_EVENT_CALLBACK *callback, void *context)
std::vector< std::filesystem::directory_entry > get_directory_entries (const std::filesystem::path &path)
 Gets a vector of direct directory entries.
std::vector< std::filesystem::directory_entry > get_subdirectories (const std::filesystem::path &path)
 Gets a vector of direct subdirectories.
bool stat_path (const std::string &path, struct stat &fd_stat, bool follow_symlink)
 Wraps a stat(path, fd_stat) call or a lstat(path, fd_stat) call, depending on the value of follow_symlink. The function invokes perror() if it fails.
bool stat_path (const std::string &path, struct stat &fd_stat)
 Wraps a stat(path, fd_stat) call that invokes perror() if it fails.
bool lstat_path (const std::string &path, struct stat &fd_stat)
 Wraps a lstat(path, fd_stat) call that invokes perror() if it fails.
static vector< win_flag_typecreate_flag_type_vector ()
static vector< fsw_event_flagdecode_flags (DWORD flag)

Variables

static const vector< FSEventFlagType > event_flag_type = create_flag_type_vector()
static const unsigned int BUFFER_SIZE = (10 * ((sizeof(struct inotify_event)) + NAME_MAX + 1))
static const int EPOLL_EVENT_COUNT = 2
static const vector< win_flag_typeevent_flag_type = create_flag_type_vector()

Detailed Description

Main namespace of libfswatch.

Typedef Documentation

◆ FSEventFlagType

using fsw::FSEventFlagType
Initial value:
struct FSEventFlagType
{
FSEventStreamEventFlags flag;
}
fsw_event_flag
Backend-agnostic change flags.
Definition cevent.h:66

◆ FSW_EVENT_CALLBACK

typedef void fsw::FSW_EVENT_CALLBACK(const std::vector< event > &, void *)

Function definition of an event callback.

The event callback is a user-supplied function that is invoked by the monitor when an event is detected. The following parameters are passed to the callback:

  • A reference to the vector of events.
  • A pointer to the context data set by the caller.

◆ fsw_hash_map

template<typename K, typename V>
using fsw::fsw_hash_map = std::map<K, V>

Default associative container type used by libfswatch.

This type definition will be a synonym of std::unordered_map if the C++ library contains it, otherwise it will default to std::map.

◆ fsw_hash_set

template<typename K>
using fsw::fsw_hash_set = std::set<K>

Default set type used by libfswatch.

This type definition will be a synonym of std::unordered_set if the C++ library contains it, otherwise it will default to std::set.

◆ monitor_filter

Initial value:
{
std::string text;
bool case_sensitive;
bool extended;
static std::vector<monitor_filter> read_from_file(const std::string& path,
void (*err_handler)(
std::string) = nullptr);
}
fsw_filter_type
Event filter type.
Definition cfilter.h:39
struct monitor_filter { std::string text; fsw_filter_type type; bool case_sensitive; bool extended; static std::vector< monitor_filter > read_from_file(const std::string &path, void(*err_handler)( std::string)=nullptr); } monitor_filter
Path filters used to accept or reject file change events.
Definition filter.hpp:58

Path filters used to accept or reject file change events.

A path filter is a regular expression used to accept or reject file change events based on the value of their path. A filter has the following characteristics:

  • It has a regular expression (monitor_filter::text), used to match the paths.
  • It can be an inclusion or an exclusion filter (monitor_filter::type).
  • It can be case sensitive or insensitive (monitor_filter::case_sensitive).
  • It can be an extended regular expression (monitor_filter::extended).

Further information about how filtering works in libfswatch can be found in Path Filtering.

◆ poll_monitor_data

using fsw::poll_monitor_data
Initial value:
struct poll_monitor::poll_monitor_data
{
std::unordered_map<string, poll_monitor::watched_file_info> tracked_files;
}

Function Documentation

◆ get_directory_entries()

std::vector< std::filesystem::directory_entry > fsw::get_directory_entries ( const std::filesystem::path & path)

Gets a vector of direct directory entries.

Parameters
pathThe directory whose entries must be returned.
Returns
A vector containing the list of entries of path.
Since
1.18.0

◆ get_subdirectories()

std::vector< std::filesystem::directory_entry > fsw::get_subdirectories ( const std::filesystem::path & path)

Gets a vector of direct subdirectories.

Parameters
pathThe directory whose subdirectories must be returned.
Returns
A vector containing the list of subdirectories of path.

◆ lstat_path()

bool fsw::lstat_path ( const std::string & path,
struct stat & fd_stat )

Wraps a lstat(path, fd_stat) call that invokes perror() if it fails.

Parameters
pathThe path to lstat().
fd_statThe stat structure where lstat() writes its results.
Returns
true if the function succeeds, false otherwise.

◆ operator<<()

std::ostream & fsw::operator<< ( std::ostream & out,
const fsw_event_flag flag )

Overload of the << operator to print an event using iostreams.

Parameters
outA reference to the output stream.
flagThe flag to print.
Returns
A reference to the stream.

◆ stat_path() [1/2]

bool fsw::stat_path ( const std::string & path,
struct stat & fd_stat )

Wraps a stat(path, fd_stat) call that invokes perror() if it fails.

Parameters
pathThe path to stat().
fd_statThe stat structure where stat() writes its results.
Returns
true if the function succeeds, false otherwise.

◆ stat_path() [2/2]

bool fsw::stat_path ( const std::string & path,
struct stat & fd_stat,
bool follow_symlink )

Wraps a stat(path, fd_stat) call or a lstat(path, fd_stat) call, depending on the value of follow_symlink. The function invokes perror() if it fails.

Parameters
pathThe path to stat() or lstat().
fd_statThe stat structure where stat() or lstat() writes its results.
follow_symlinktrue if the function should call lstat(), false if it should call stat().
Returns
true if the function succeeds, false otherwise.