26 #ifndef FSW_KQUEUE_MONITOR_H
27 # define FSW_KQUEUE_MONITOR_H
32 # include <sys/stat.h>
33 # include <sys/event.h>
41 struct kqueue_monitor_load;
79 void initialize_kqueue();
80 void terminate_kqueue();
81 bool scan(
const std::string& path,
bool is_root_path =
true);
82 bool add_watch(
const std::string& path,
const struct stat& fd_stat);
83 bool is_path_watched(
const std::string& path)
const;
84 void remove_deleted();
85 void rescan_pending();
86 void scan_root_paths();
87 int wait_for_events(
const std::vector<struct kevent>& changes,
88 std::vector<struct kevent>& event_list);
89 void process_events(
const std::vector<struct kevent>& changes,
90 const std::vector<struct kevent>& event_list,
95 kqueue_monitor_load *load;
void * context
Pointer to context data that will be passed to the monitor::callback.
Definition: monitor.hpp:553
Base class of all monitors.
Definition: monitor.hpp:146
Main namespace of libfswatch.
Definition: event.cpp:23
Header of the fsw::monitor class.
virtual ~kqueue_monitor()
Destroys an instance of this class.
void run()
Executes the monitor loop.
Definition: cmonitor.h:47
kqueue_monitor(std::vector< std::string > paths, FSW_EVENT_CALLBACK *callback, void *context=nullptr)
Constructs an instance of this class.
Solaris/Illumos monitor.
Definition: kqueue_monitor.hpp:48
std::vector< std::string > paths
List of paths to watch.
Definition: monitor.hpp:533
FSW_EVENT_CALLBACK * callback
Callback to which change events should be notified.
Definition: monitor.hpp:548
void FSW_EVENT_CALLBACK(const std::vector< event > &, void *)
Function definition of an event callback.
Definition: monitor.hpp:60