X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=include%2Fafb%2Fafb-binding-v1.h;fp=include%2Fafb%2Fafb-binding-v1.h;h=6281dd8ae3220bd7c292b5b3d0e6384d9e02160c;hb=c9ba2ce49808a19a4ef982280a46256797b830ae;hp=4fbe8f9bad97d7d203519d4077c3c005e275169d;hpb=c710a0da4ebcc126275c42a0387ff85b2557e3ae;p=src%2Fapp-framework-binder.git diff --git a/include/afb/afb-binding-v1.h b/include/afb/afb-binding-v1.h index 4fbe8f9b..6281dd8a 100644 --- a/include/afb/afb-binding-v1.h +++ b/include/afb/afb-binding-v1.h @@ -18,6 +18,8 @@ #pragma once struct afb_binding_interface; +struct json_object; +struct afb_service; /* * Function for registering the binding @@ -44,6 +46,31 @@ struct afb_binding_interface; */ extern const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *interface); +/* + * When a binding have an exported implementation of the + * function 'afbBindingV1ServiceInit', defined below, + * the framework calls it for initialising the service after + * registration of all bindings. + * + * The object 'service' should be recorded. It has functions that + * allows the binding to call features with its own personality. + * + * The function should return 0 in case of success or, else, should return + * a negative value. + */ +extern int afbBindingV1ServiceInit(struct afb_service service); + +/* + * When a binding have an implementation of the function 'afbBindingV1ServiceEvent', + * defined below, the framework calls that function for any broadcasted event or for + * events that the service subscribed to in its name. + * + * It receive the 'event' name and its related data in 'object' (be aware that 'object' + * might be NULL). + */ +extern void afbBindingV1ServiceEvent(const char *event, struct json_object *object); + + /* * Enum for Session/Token/Assurance middleware. * This enumeration is valid for bindings of type 1 @@ -107,3 +134,23 @@ struct afb_binding_desc_v1 const struct afb_verb_desc_v1 *verbs; /* array of descriptions of verbs terminated by a NULL name */ }; +/* + * Definition of the type+versions of the binding. + * The definition uses hashes. + */ +enum afb_binding_type +{ + AFB_BINDING_VERSION_1 = 123456789 +}; + +/* + * Description of a binding + */ +struct afb_binding +{ + enum afb_binding_type type; /* type of the binding */ + union { + struct afb_binding_desc_v1 v1; /* description of the binding of type 1 */ + }; +}; +