路泰科技体检小程序UI设计新版本
qx
2025-08-06 fe97f78b9a343ee9fa45a3531d03d73dcd1df31b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef WATCHMAN_H
#define WATCHMAN_H
 
#include "../Backend.hh"
#include "./BSER.hh"
#include "../Signal.hh"
#include "./IPC.hh"
 
class WatchmanBackend : public Backend {
public:
  static bool checkAvailable();
  void start() override;
  WatchmanBackend() : mStopped(false) {};
  ~WatchmanBackend();
  void writeSnapshot(WatcherRef watcher, std::string *snapshotPath) override;
  void getEventsSince(WatcherRef watcher, std::string *snapshotPath) override;
  void subscribe(WatcherRef watcher) override;
  void unsubscribe(WatcherRef watcher) override;
private:
  std::unique_ptr<IPC> mIPC;
  Signal mRequestSignal;
  Signal mResponseSignal;
  BSER::Object mResponse;
  std::string mError;
  std::unordered_map<std::string, WatcherRef> mSubscriptions;
  bool mStopped;
  Signal mEndedSignal;
 
  std::string clock(WatcherRef watcher);
  void watchmanWatch(std::string dir);
  BSER::Object watchmanRequest(BSER cmd);
  void handleSubscription(BSER::Object obj);
};
 
#endif