X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-svc.h;h=fb82e3c49f0fe381d16b346f788a6dc79642af83;hb=197626868aaf84e9a68e8e7e5397ef1c6883a0f1;hp=3069e4a17718b91fa6d62948804bcf2046927a0b;hpb=5b5a2e4412eea806451c016da9fb285bc09c17ab;p=src%2Fapp-framework-binder.git diff --git a/src/afb-svc.h b/src/afb-svc.h index 3069e4a1..fb82e3c4 100644 --- a/src/afb-svc.h +++ b/src/afb-svc.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 "IoT.bzh" + * Copyright (C) 2016, 2017 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,8 +19,51 @@ struct afb_svc; struct afb_service; +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), + struct afb_binding_data_v2 *data); + +extern void afb_svc_update_hook(struct afb_svc *svc);