AFBClient: fix port sanity check
[staging/windowmanager.git] / AFBClient.h
1 #ifndef AFBCLIENT_H
2 #define AFBCLIENT_H
3
4 #include <functional>
5
6 class AFBClient {
7     AFBClient();
8     ~AFBClient();
9
10     AFBClient(const AFBClient &) = delete;
11     AFBClient &operator=(const AFBClient &) = delete;
12
13 public:
14     using handler_fun = std::function<void(const char *)>;
15
16     enum EventType {
17         Event_Active = 1,
18         Event_Inactive,
19
20         Event_Visible,
21         Event_Invisible,
22
23         Event_SyncDraw,
24         Event_FlushDraw,
25     };
26
27     static AFBClient &instance();
28
29     int init(int port, char const *token);
30     int dispatch();
31
32     // WM API
33     int requestSurface(const char *label);
34     int activateSurface(const char *label);
35     int deactivateSurface(const char *label);
36     int endDraw(const char *label);
37
38     void set_event_handler(enum EventType et, handler_fun f);
39
40     struct Impl;
41
42 private:
43     Impl *d;
44 };
45 #endif // AFBCLIENT_H