X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-svc.h;h=e23c28678e0ac4e37c7841c310f498f3d1a1fd76;hb=b355a2a65511c32aaaddf289d70395f872bd4b26;hp=62b329df32b036e9e8bcfd1aa7db64a394ca7e8b;hpb=4be084408c6d3d7b7f90a2493829c8ce0cebb397;p=src%2Fapp-framework-binder.git diff --git a/src/afb-svc.h b/src/afb-svc.h index 62b329df..e23c2867 100644 --- a/src/afb-svc.h +++ b/src/afb-svc.h @@ -19,18 +19,48 @@ struct afb_svc; struct afb_service; +struct afb_session; struct afb_apiset; -struct afb_ditf; +struct afb_evt_listener; +struct afb_binding_data_v2; -extern struct afb_svc *afb_svc_create_v1( - struct afb_apiset *apiset, - int share_session, - int (*start)(struct afb_service service), - void (*on_event)(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; -extern struct afb_svc *afb_svc_create_v2( + /* 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 void afb_svc_destroy(struct afb_svc *svc, struct afb_service *service); + +extern struct afb_svc *afb_svc_create( + const char *api, struct afb_apiset *apiset, int share_session, - int (*start)(struct afb_service service), - void (*on_event)(struct afb_service service, const char *event, struct json_object *object), - struct afb_ditf *ditf); + void (*on_event)(const char *event, struct json_object *object), + struct afb_service *service); + +extern int afb_svc_start_v1(struct afb_svc *svc, int (*start)(struct afb_service)); +extern int afb_svc_start_v2(struct afb_svc *svc, int (*start)()); + +extern void afb_svc_update_hook(struct afb_svc *svc); +