diff options
Diffstat (limited to 'include/afb/afb-binding-v1.h')
-rw-r--r-- | include/afb/afb-binding-v1.h | 47 |
1 files changed, 47 insertions, 0 deletions
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 @@ -45,6 +47,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 */ + }; +}; + |