From e21766d185885a985ddf5b2f312171b3f81eb94e Mon Sep 17 00:00:00 2001 From: Jonathan Aillet Date: Wed, 23 May 2018 21:14:08 +0200 Subject: Add a 'List' verb to each hal controller api Add a 'List' verb to each hal controller api which will list verbs available for this api. The callback of the verb is not implemented yet. Change-Id: Ibc44ef8673267b0b952b32fb256214452aa3c000 Signed-off-by: Jonathan Aillet --- .../4a-hal-controllers-api-loader.c | 2 ++ 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c | 38 ++++++++++++++++++++++ 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.h | 28 ++++++++++++++++ 4a-hal/CMakeLists.txt | 1 + 4 files changed, 69 insertions(+) create mode 100644 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c create mode 100644 4a-hal/4a-hal-controllers/4a-hal-controllers-cb.h diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c index 834d717..8bac074 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c @@ -30,6 +30,7 @@ #include "../4a-hal-manager/4a-hal-manager-cb.h" #include "4a-hal-controllers-api-loader.h" +#include "4a-hal-controllers-cb.h" // Default api to print log when apihandle not available afb_dynapi *AFB_default; @@ -57,6 +58,7 @@ static struct HalUtlApiVerb CtlHalDynApiStaticVerbs[] = { /* VERB'S NAME FUNCTION TO CALL SHORT DESCRIPTION */ { .verb = "ping", .callback = HalMgrPing, .info = "Ping test for DynApi"}, + { .verb = "list", .callback = HalCtlsListVerbs, .info = "List available verbs for this api"}, { .verb = NULL } // Marker for end of the array }; diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c new file mode 100644 index 0000000..bc8339c --- /dev/null +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.c @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2016 "IoT.bzh" + * Author Jonathan Aillet + * + * 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 +#include +#include + +#include + +#include "4a-hal-controllers-cb.h" + +/******************************************************************************* + * HAL Manager verbs functions * + ******************************************************************************/ + +// TODO JAI : to implement +void HalCtlsListVerbs(afb_request *request) +{ + AFB_REQUEST_WARNING(request, "JAI :%s not implemented yet", __func__); + + afb_request_success(request, json_object_new_boolean(false), NULL); +} \ No newline at end of file diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.h b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.h new file mode 100644 index 0000000..7bd6434 --- /dev/null +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-cb.h @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2016 "IoT.bzh" + * Author Jonathan Aillet + * + * 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. + */ + +#ifndef _HAL_CTLS_CB_INCLUDE_ +#define _HAL_CTLS_CB_INCLUDE_ + +#include + +#define AFB_BINDING_VERSION dyn +#include + +void HalCtlsListVerbs(afb_request *request); + +#endif /* _HALMGR_CB_INCLUDE_ */ \ No newline at end of file diff --git a/4a-hal/CMakeLists.txt b/4a-hal/CMakeLists.txt index d7d536b..b963bc0 100644 --- a/4a-hal/CMakeLists.txt +++ b/4a-hal/CMakeLists.txt @@ -30,6 +30,7 @@ PROJECT_TARGET_ADD(4a-hal) ${TARGET_NAME}-manager/${TARGET_NAME}-manager-cb.c ${TARGET_NAME}-manager/${TARGET_NAME}-manager-events.c ${TARGET_NAME}-controllers/${TARGET_NAME}-controllers-api-loader.c + ${TARGET_NAME}-controllers/${TARGET_NAME}-controllers-cb.c ) # Binder exposes a unique public entry point -- cgit 1.2.3-korg