source: imaps-frontend/node_modules/@parcel/watcher/src/wasm/WasmBackend.hh@ 0c6b92a

main
Last change on this file since 0c6b92a was 0c6b92a, checked in by stefan toskovski <stefantoska84@…>, 5 weeks ago

Pred finalna verzija

  • Property mode set to 100644
File size: 963 bytes
Line 
1#ifndef WASM_H
2#define WASM_H
3
4#include <unordered_map>
5#include "../shared/BruteForceBackend.hh"
6#include "../DirTree.hh"
7
8extern "C" {
9 int wasm_backend_add_watch(const char *filename, void *backend);
10 void wasm_backend_remove_watch(int wd);
11 void wasm_backend_event_handler(void *backend, int wd, int type, char *filename);
12};
13
14struct WasmSubscription {
15 std::shared_ptr<DirTree> tree;
16 std::string path;
17 WatcherRef watcher;
18};
19
20class WasmBackend : public BruteForceBackend {
21public:
22 void start() override;
23 void subscribe(WatcherRef watcher) override;
24 void unsubscribe(WatcherRef watcher) override;
25 void handleEvent(int wd, int type, char *filename);
26private:
27 int mWasm;
28 std::unordered_multimap<int, std::shared_ptr<WasmSubscription>> mSubscriptions;
29
30 void watchDir(WatcherRef watcher, std::string path, std::shared_ptr<DirTree> tree);
31 bool handleSubscription(int type, char *filename, std::shared_ptr<WasmSubscription> sub);
32};
33
34#endif
Note: See TracBrowser for help on using the repository browser.