Adds hooks for service (svc)
[src/app-framework-binder.git] / src / afb-svc.h
index 7a1f7c1..fb82e3c 100644 (file)
 
 struct afb_svc;
 struct afb_service;
-struct afb_binding_interface;
+struct afb_session;
+struct afb_apiset;
+struct afb_evt_listener;
+struct afb_binding_data_v2;
 
-extern struct afb_svc *afb_svc_create(int share_session,
-                       int (*init)(struct afb_service service),
-                       void (*onevent)(const char *event, struct json_object *object));
+struct json_object;
+
+/*
+ * Structure for recording service
+ */
+struct afb_svc
+{
+       /* api/prefix */
+       const char *api;
+
+       /* session of the service */
+       struct afb_session *session;
+
+       /* the apiset for the service */
+       struct afb_apiset *apiset;
+
+       /* event listener of the service or NULL */
+       struct afb_evt_listener *listener;
+
+       /* on event callback for the service */
+       void (*on_event)(const char *event, struct json_object *object);
+
+       /* hooking flags */
+       int hookflags;
+};
+
+extern struct afb_svc *afb_svc_create_v1(
+                       const char *api,
+                       struct afb_apiset *apiset,
+                       int share_session,
+                       int (*start)(struct afb_service service),
+                       void (*on_event)(const char *event, struct json_object *object));
 
 extern struct afb_svc *afb_svc_create_v2(
+                       const char *api,
+                       struct afb_apiset *apiset,
                        int share_session,
+                       int (*start)(),
                        void (*on_event)(const char *event, struct json_object *object),
-                       int (*start)(const struct afb_binding_interface *interface, struct afb_service service),
-                       const struct afb_binding_interface *interface);
+                       struct afb_binding_data_v2 *data);
+
+extern void afb_svc_update_hook(struct afb_svc *svc);
+