aboutsummaryrefslogtreecommitdiffstats
path: root/include/afb/afb-binding-v1.h
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-03-30 19:02:06 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-03-30 19:02:06 +0200
commitc9ba2ce49808a19a4ef982280a46256797b830ae (patch)
tree8e62a2bd8276a80642c2b2a5e2f52d6961fdc3de /include/afb/afb-binding-v1.h
parentc710a0da4ebcc126275c42a0387ff85b2557e3ae (diff)
Start to implement the bindings V2
More work has to be done for merging common code. Change-Id: I72b01901f978854843967c12bfcb3cc59cc10310 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'include/afb/afb-binding-v1.h')
-rw-r--r--include/afb/afb-binding-v1.h47
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 */
+ };
+};
+