AFBClient: Pimpl'ed to hide impl details
[staging/windowmanager.git] / AFBClient.h
index a31479c..f42aeea 100644 (file)
@@ -1,18 +1,8 @@
 #ifndef AFBCLIENT_H
 #define AFBCLIENT_H
 
-#include <systemd/sd-event.h>
-
 #include <functional>
 
-extern "C"
-{
-#include <json-c/json.h>
-
-#include "afb-wsj1.h"
-#include "afb-ws-client.h"
-}
-
 class AFBClient
 {
     AFBClient();
@@ -34,7 +24,7 @@ public:
     static AFBClient &instance();
 
     int init(int port, char const *token);
-    int dispatch(uint64_t timeout);
+    int dispatch();
 
     // WM API
     int requestSurface(const char *label);
@@ -45,14 +35,9 @@ public:
     void set_event_handler(enum EventType et,
           std::function<void(char const *label)> f);
 
-private:
-    /// object will be json_object_put
-    int call(const char *verb, json_object *object,
-          std::function<void(bool ok, json_object*)> onReply);
-
-    struct afb_wsj1 *wsj1;
-    struct afb_wsj1_itf itf;
+    struct Impl;
 
-    sd_event *loop;
+private:
+    Impl *d;
 };
 #endif // AFBCLIENT_H