struct afb_svc;
struct afb_service;
+struct afb_session;
struct afb_apiset;
-struct afb_binding_interface;
+struct afb_evt_listener;
+struct afb_binding_data_v2;
-extern struct afb_svc *afb_svc_create(
+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 (*init)(struct afb_service service),
- void (*onevent)(const char *event, struct json_object *object));
+ 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);
+