summaryrefslogtreecommitdiffstats
path: root/src/test-binding.c
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2018-07-05 18:42:53 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2018-07-10 17:12:30 +0200
commit90e56dd22eba15bf71e3e0042080c2213ae39920 (patch)
tree889d89bd0f751832eb6e5fc9211d17a5221c74cc /src/test-binding.c
parent179196fc65315bf9e8cade8137e9786e2e0b0fed (diff)
Files reorganization and rename project to AFT
Change-Id: I2e4adc51bdf5fcb9001c68fb4fc71f4987da47e0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/test-binding.c')
-rw-r--r--src/test-binding.c167
1 files changed, 0 insertions, 167 deletions
diff --git a/src/test-binding.c b/src/test-binding.c
deleted file mode 100644
index 39e90c4..0000000
--- a/src/test-binding.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
-* Copyright (C) 2016 "IoT.bzh"
-* Author Fulup Ar Foll <fulup@iot.bzh>
-* Author Romain Forlot <romain@iot.bzh>
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-#include "test-binding.h"
-#include "mapis.h"
-// default api to print log when apihandle not avaliable
-afb_dynapi *AFB_default;
-
-// Config Section definition
-static CtlSectionT ctrlSections[] = {
- {.key = "resources", .loadCB = PluginConfig},
- {.key = "testVerb", .loadCB = ControlConfig},
- {.key = "events", .loadCB = EventConfig},
- {.key = "mapis", .loadCB = MapiConfig},
- {.key = NULL}
-};
-
-static void ctrlapi_ping(AFB_ReqT request) {
- static int count = 0;
-
- count++;
- AFB_ReqNotice(request, "Controller:ping count=%d", count);
- AFB_ReqSuccess(request, json_object_new_int(count), NULL);
-}
-
-static void ctrlapi_exit(AFB_ReqT request) {
-
- AFB_ReqNotice(request, "Exiting...");
- AFB_ReqSuccess(request, NULL, NULL);
- exit(0);
-}
-
-static AFB_ApiVerbs CtrlApiVerbs[] = {
- /* VERB'S NAME FUNCTION TO CALL SHORT DESCRIPTION */
- {.verb = "ping", .callback = ctrlapi_ping, .info = "ping test for API"},
- {.verb = "exit", .callback = ctrlapi_exit, .info = "Exit test"},
- {.verb = NULL} /* marker for end of the array */
-};
-
-static int CtrlLoadStaticVerbs(afb_dynapi *apiHandle, AFB_ApiVerbs *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);
- }
-
- return errcount;
-};
-
-static int CtrlInitOneApi(AFB_ApiT apiHandle) {
- // Hugely hack to make all V2 AFB_DEBUG to work in fileutils
- AFB_default = apiHandle;
-
- CtlConfigT *ctrlConfig = afb_dynapi_get_userdata(apiHandle);
-
- return CtlConfigExec(apiHandle, ctrlConfig);
-}
-
-// next generation dynamic API-V3 mode
-#include <signal.h>
-
-static int CtrlLoadOneApi(void *cbdata, AFB_ApiT apiHandle) {
- CtlConfigT *ctrlConfig = (CtlConfigT *)cbdata;
-
- // save closure as api's data context
- afb_dynapi_set_userdata(apiHandle, ctrlConfig);
-
- // add static controls verbs
- int err = CtrlLoadStaticVerbs(apiHandle, CtrlApiVerbs);
- if (err) {
- AFB_ApiError(apiHandle, "CtrlLoadSection fail to register static V2 verbs");
- return ERROR;
- }
-
- // load section for corresponding API
- err = CtlLoadSections(apiHandle, ctrlConfig, ctrlSections);
-
- // declare an event event manager for this API;
- afb_dynapi_on_event(apiHandle, CtrlDispatchApiEvent);
-
- // init API function (does not receive user closure ???
- afb_dynapi_on_init(apiHandle, CtrlInitOneApi);
-
- afb_dynapi_seal(apiHandle);
- return err;
-}
-
-int afbBindingVdyn(afb_dynapi *apiHandle) {
- int status, err = 0;
- const char *dirList = NULL, *configPath = NULL;
- json_object *resourcesJ = NULL, *eventsJ = NULL;
- CtlConfigT *ctrlConfig = NULL;
- AFB_default = apiHandle;
-
- AFB_ApiNotice(apiHandle, "Controller in afbBindingVdyn");
-
- dirList = getenv("CONTROL_CONFIG_PATH");
- if (!dirList)
- dirList = CONTROL_CONFIG_PATH;
-
- configPath = CtlConfigSearch(apiHandle, dirList, "aft");
- if (!configPath) {
- AFB_ApiError(apiHandle, "CtlPreInit: No %s* config found in %s ", GetBinderName(), dirList);
- return ERROR;
- }
-
- // load config file and create API
- ctrlConfig = CtlLoadMetaData(apiHandle, configPath);
- if (!ctrlConfig) {
- AFB_ApiError(apiHandle,
- "CtrlBindingDyn No valid control config file in:\n-- %s",
- configPath);
- return ERROR;
- }
-
- if (!ctrlConfig->api) {
- AFB_ApiError(apiHandle,
- "CtrlBindingDyn API Missing from metadata in:\n-- %s",
- configPath);
- return ERROR;
- }
-
- AFB_ApiNotice(apiHandle, "Controller API='%s' info='%s'", ctrlConfig->api,
- ctrlConfig->info);
-
- err = wrap_json_pack(&resourcesJ, "{s[{ss, ss, ss}]}", "resources",
- "uid", "AFT",
- "info", "LUA Binder test framework",
- "libs", "aft.lua" );
- err += wrap_json_pack(&eventsJ, "{s[{ss, ss}]}", "events",
- "uid", "monitor/trace",
- "action", "lua://AFT#_evt_catcher_" );
-
- if(err) {
- AFB_ApiError(apiHandle, "Error at Controller configuration editing.");
- return err;
- }
- wrap_json_object_add(ctrlConfig->configJ, resourcesJ);
- wrap_json_object_add(ctrlConfig->configJ, eventsJ);
-
- // create one API per config file (Pre-V3 return code ToBeChanged)
- status = afb_dynapi_new_api(apiHandle, ctrlConfig->api, ctrlConfig->info, 1, CtrlLoadOneApi, ctrlConfig);
-
- return status;
-}