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