/
briw
/
futureTech
Обзор
Документация
Войти
/
briw
/
futureTech
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/@parcel/watcher/src/linux/InotifyBackend.hh
34 строки
946 B
Briw
Structure
25 окт 2025, 03:14
25 окт 2025, 03:14
0aaa22e
Код
Авторство
О чём код?
#ifndef INOTIFY_H #define INOTIFY_H #include <unordered_map> #include <sys/inotify.h> #include "../shared/BruteForceBackend.hh" #include "../DirTree.hh" #include "../Signal.hh" struct InotifySubscription { std::shared_ptr<DirTree> tree; std::string path; WatcherRef watcher; }; class InotifyBackend : public BruteForceBackend { public: void start() override; ~InotifyBackend(); void subscribe(WatcherRef watcher) override; void unsubscribe(WatcherRef watcher) override; private: int mPipe[2]; int mInotify; std::unordered_multimap<int, std::shared_ptr<InotifySubscription>> mSubscriptions; Signal mEndedSignal; bool watchDir(WatcherRef watcher, std::string path, std::shared_ptr<DirTree> tree); void handleEvents(); void handleEvent(struct inotify_event *event, std::unordered_set<WatcherRef> &watchers); bool handleSubscription(struct inotify_event *event, std::shared_ptr<InotifySubscription> sub); }; #endif