summaryrefslogtreecommitdiffstats
path: root/4a-hal/4a-hal-manager/4a-hal-manager.c
diff options
context:
space:
mode:
authorJonathan Aillet <jonathan.aillet@iot.bzh>2019-04-19 10:24:11 +0200
committerJonathan Aillet <jonathan.aillet@iot.bzh>2019-05-24 12:06:20 +0200
commit735e7a39cc509f74f85c48b6a3db50e08c377752 (patch)
treefd57e17b915881b8793791fee5feeea3385f28bd /4a-hal/4a-hal-manager/4a-hal-manager.c
parent68138a3ec7a78ad7304d291ff92d8e5292847c4e (diff)
Reorganize repository directories
Reorganize repository directories to clarify code use. BUG-AGL: SPEC-2329 Change-Id: Ia9be0c1818cb2e331e75b51a87fcb2820407c1d8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-manager/4a-hal-manager.c')
-rw-r--r--4a-hal/4a-hal-manager/4a-hal-manager.c168
1 files changed, 0 insertions, 168 deletions
diff --git a/4a-hal/4a-hal-manager/4a-hal-manager.c b/4a-hal/4a-hal-manager/4a-hal-manager.c
deleted file mode 100644
index 4d2fbf1..0000000
--- a/4a-hal/4a-hal-manager/4a-hal-manager.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2018 "IoT.bzh"
- * Author Jonathan Aillet <jonathan.aillet@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 <afb/afb-binding.h>
-
-#include "4a-hal-utilities-data.h"
-#include "4a-hal-utilities-verbs-loader.h"
-
-#include "../4a-internals-hal/4a-internals-hal-api-loader.h"
-
-#include "4a-hal-manager.h"
-#include "4a-hal-manager-cb.h"
-
-// Default api to print log when apihandle not available
-afb_api_t AFB_default;
-
-// Local (static) Hal manager data structure
-static struct HalMgrData localHalMgrGlobalData;
-
-/*******************************************************************************
- * HAL Manager verbs table *
- ******************************************************************************/
-
-// Hal manager exported verbs
-afb_verb_t HalManagerApiStaticVerbs[] =
-{
- /* VERB'S NAME FUNCTION TO CALL SHORT DESCRIPTION */
- { .verb = "ping", .callback = HalMgrPing, .info = "Ping test"},
- { .verb = "loaded", .callback = HalMgrLoaded, .info = "Show loaded HAL"},
- { .verb = "load", .callback = HalMgrLoad, .info = "Load an external HAL to HAL Manager"},
- { .verb = "unload", .callback = HalMgrUnload, .info = "Unload an external HAL to HAL Manager"},
- { .verb = "subscribe", .callback = HalMgrSubscribeEvent, .info = "Subscribe to an event"},
- { .verb = "unsuscribe", .callback = HalMgrUnsubscribeEvent, .info = "Unsubscribe to an event"},
- { .verb = NULL } // Marker for end of the array
-};
-
-/*******************************************************************************
- * HAL Manager get 'HalData' linked list *
- from HAL list function *
- ******************************************************************************/
-
-struct HalData **HalMngGetHalDataList(void)
-{
- return &localHalMgrGlobalData.halDataList;
-}
-
-/*******************************************************************************
- * Dynamic API functions for hal manager *
- ******************************************************************************/
-
-static int HalMgrInitApi(afb_api_t apiHandle)
-{
- struct HalData *currentHalData;
- struct HalMgrData *halMgrData;
-
- if(! apiHandle)
- return -1;
-
- // Hugely hack to make all V2 AFB_DEBUG to work in fileutils
- AFB_default = apiHandle;
-
- // Retrieve section config from api handle
- halMgrData = (struct HalMgrData *) afb_api_get_userdata(apiHandle);
- if(! halMgrData)
- return -2;
-
- if(HalUtlInitializeHalMgrData(apiHandle, halMgrData, HAL_MANAGER_API_NAME, HAL_MANAGER_API_INFO))
- return -3;
-
- currentHalData = halMgrData->halDataList;
-
- while(currentHalData) {
- if(! currentHalData->apiName)
- return -4;
- else if(afb_api_require_api(apiHandle, currentHalData->apiName, 1))
- return -5;
-
- currentHalData = currentHalData->next;
- }
-
- return 0;
-}
-
-static int HalMgrLoadApi(void *cbdata, afb_api_t apiHandle)
-{
- struct HalMgrData *halMgrData;
-
- if(! cbdata || ! apiHandle)
- return -1;
-
- halMgrData = (struct HalMgrData *) cbdata;
-
- // Save closure as api's data context
- afb_api_set_userdata(apiHandle, halMgrData);
-
- // Add static controls verbs
- if(HalUtlLoadVerbs(apiHandle, HalManagerApiStaticVerbs)) {
- AFB_API_ERROR(apiHandle, "Load section : fail to register static verbs");
- return 1;
- }
-
- // Declare an event manager for Hal Manager
- afb_api_on_event(apiHandle, HalMgrDispatchApiEvent);
-
- // Init Api function (does not receive user closure ???)
- afb_api_on_init(apiHandle, HalMgrInitApi);
-
- afb_api_seal(apiHandle);
-
- return 0;
-}
-
-int HalMgrCreateApi(afb_api_t apiHandle, struct HalMgrData *halMgrData)
-{
- if(! apiHandle || ! halMgrData)
- return -1;
-
- // Create one API
- return afb_api_new_api(apiHandle, HAL_MANAGER_API_NAME, HAL_MANAGER_API_INFO, 1, HalMgrLoadApi, halMgrData) ? 0 : -1;
-}
-
-/*******************************************************************************
- * Startup function *
- ******************************************************************************/
-
-int afbBindingEntry(afb_api_t apiHandle)
-{
- int status = 0, rc;
-
- if(! apiHandle)
- return -1;
-
- // Hugely hack to make all V2 AFB_DEBUG to work in fileutils
- AFB_default = apiHandle;
-
- AFB_API_NOTICE(apiHandle, "Binding start");
-
- // Load Hal-Manager using Api v3
- rc = HalMgrCreateApi(apiHandle, &localHalMgrGlobalData);
- if(rc < 0)
- status--;
-
- // Load internals Hal using Api v3
- rc = InternalHalCreateAllApi(apiHandle, &localHalMgrGlobalData);
- if(rc < 0)
- status -= rc;
-
- return status;
-} \ No newline at end of file