#ifndef NOTIFY_H_ #define NOTIFY_H_ #include #include #include #include #include struct notify_event { std::string file; uint32_t mask; }; class Notify { private: // Stream where to log errors std::ostream& m_log_stream; // inotify FD int m_notify_fd; // Map of watch FDs std::map m_watch_fds; std::vector> get_watch_events() const; public: Notify(std::ostream& log_stream = std::cout); ~Notify(); void add_file(const std::string& filename, uint32_t mask); void add_list(const std::vector& files, uint32_t mask); void add_list(const std::vector>& files); void remove_file(const std::string& filename); void remove_list(const std::vector& files); void clear(); size_t size() const; std::vector get_list() const; void set_list(std::vector>& files); std::vector get_events() const; }; #endif // NOTIFY_H_