aboutsummaryrefslogtreecommitdiffstats
path: root/src/xds-binding.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xds-binding.c')
-rw-r--r--src/xds-binding.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/src/xds-binding.c b/src/xds-binding.c
index 81ac6b0..9730524 100644
--- a/src/xds-binding.c
+++ b/src/xds-binding.c
@@ -1,7 +1,8 @@
/*
-* Copyright (C) 2016 "IoT.bzh"
+* Copyright (C) 2016-2019 "IoT.bzh"
* Author Fulup Ar Foll <fulup@iot.bzh>
* Author Romain Forlot <romain@iot.bzh>
+* Author Sebastien Douheret <sebastien@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,10 +19,11 @@
#define _GNU_SOURCE
#include <afb/afb-binding.h>
+#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
-#include <stdbool.h>
+#include <signal.h>
#include "xds-binding.h"
@@ -65,14 +67,18 @@ static afb_verb_t CtrlApiVerbs[] = {
{ .verb = NULL } /* marker for end of the array */
};
-static int CtrlLoadStaticVerbs(afb_dynapi* apiHandle, afb_verb_t* verbs)
+static int CtrlLoadStaticVerbs(afb_api_t apiHandle, afb_verb_t* verbs)
{
int errcount = 0;
for (int idx = 0; verbs[idx].verb; idx++) {
- errcount += afb_dynapi_add_verb(
- apiHandle, CtrlApiVerbs[idx].verb, NULL, CtrlApiVerbs[idx].callback,
- (void*)&CtrlApiVerbs[idx], CtrlApiVerbs[idx].auth, 0);
+ errcount += afb_api_add_verb(apiHandle,
+ CtrlApiVerbs[idx].verb,
+ NULL,
+ CtrlApiVerbs[idx].callback,
+ (void*)&CtrlApiVerbs[idx],
+ CtrlApiVerbs[idx].auth,
+ 0, 0);
}
return errcount;
@@ -83,7 +89,7 @@ static int CtrlInitOneApi(afb_api_t apiHandle)
int err = 0;
// retrieve section config from api handle
- CtlConfigT* ctrlConfig = (CtlConfigT*)afb_dynapi_get_userdata(apiHandle);
+ CtlConfigT* ctrlConfig = (CtlConfigT*)afb_api_get_userdata(apiHandle);
err = CtlConfigExec(apiHandle, ctrlConfig);
if (err) {
AFB_API_ERROR(apiHandle, "Error at CtlConfigExec step");
@@ -93,37 +99,36 @@ static int CtrlInitOneApi(afb_api_t apiHandle)
return err;
}
-// next generation dynamic API-V3 mode
-#include <signal.h>
-
static int CtrlLoadOneApi(void* cbdata, afb_api_t apiHandle)
{
CtlConfigT* ctrlConfig = (CtlConfigT*)cbdata;
// save closure as api's data context
- afb_dynapi_set_userdata(apiHandle, ctrlConfig);
+ afb_api_set_userdata(apiHandle, ctrlConfig);
// add static controls verbs
- int err = CtrlLoadStaticVerbs(apiHandle, CtrlApiVerbs);
- if (err) {
+ int error = CtrlLoadStaticVerbs(apiHandle, CtrlApiVerbs);
+ if (error) {
AFB_API_ERROR(apiHandle, "CtrlLoadSection fail to register static V2 verbs");
- return ERROR;
+ goto OnErrorExit;
}
// load section for corresponding API
- err = CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
+ error = CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
// declare an event event manager for this API;
- afb_dynapi_on_event(apiHandle, CtrlDispatchApiEvent);
+ afb_api_on_event(apiHandle, CtrlDispatchApiEvent);
- // init API function (does not receive user closure ???
- afb_dynapi_on_init(apiHandle, CtrlInitOneApi);
+ // init API function
+ afb_api_on_init(apiHandle, CtrlInitOneApi);
- afb_dynapi_seal(apiHandle);
- return err;
+ afb_api_seal(apiHandle);
+
+OnErrorExit:
+ return error;
}
-int afbBindingEntry(afb_dynapi* apiHandle)
+int afbBindingEntry(afb_api_t apiHandle)
{
int status = 0;
char* dirList;
@@ -176,7 +181,8 @@ int afbBindingEntry(afb_dynapi* apiHandle)
ctrlConfig->info);
// create one API per config file (Pre-V3 return code ToBeChanged)
- status = afb_dynapi_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, CtrlLoadOneApi, ctrlConfig);
+ afb_api_t handle = afb_api_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, CtrlLoadOneApi, ctrlConfig);
+ status = (handle) ? 0 : -1;
_exit_afbBindingEntry:
if (dirListNeedFree)