diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-05-23 20:43:00 +0200 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2018-10-08 15:51:00 +0200 |
commit | 5fa641b973806749d85e73b7821ac8098d6607f6 (patch) | |
tree | 7aeb6b824302b19811f366f74d6a97a53f9f637b | |
parent | 6ff2903f7cff91d10d2261d5d5b931466ea04cad (diff) |
Get Hal controller api structure fields properly
Because of a recent change in the app-controller, change the way
that metadata was get.
Avoid to parse json again and use only CtlConfigT strcuture
fields to fill Hal controller api structure.
Add a fields info in Hal controller api structure.
Change-Id: I17ff00bfd6d0991bed47831a92bf81ddcf3fb4c9
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
-rw-r--r-- | 4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.c | 30 | ||||
-rw-r--r-- | 4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h | 8 | ||||
-rw-r--r-- | 4a-hal/4a-hal-utilities/4a-hal-utilities-data.h | 1 |
3 files changed, 7 insertions, 32 deletions
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 3401c93..18cf781 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 @@ -68,10 +68,6 @@ static struct HalUtlApiVerb CtlHalDynApiStaticVerbs[] = static int HalCtlsInitOneApi(afb_dynapi *apiHandle) { - int apiMetadataUnpackErr, apiHalmetadataUnpackErr; - - json_object *apiMetadata, *apiHalmetadata; - CtlConfigT *ctrlConfig; struct SpecificHalData *currentCtlHalData; @@ -94,27 +90,13 @@ static int HalCtlsInitOneApi(afb_dynapi *apiHandle) currentCtlHalData->internal = true; currentCtlHalData->status = HAL_STATUS_UNAVAILABLE; - if(! json_object_object_get_ex(ctrlConfig->configJ, "metadata", &apiMetadata)) - return -4; + currentCtlHalData->name = (char *) ctrlConfig->api; + currentCtlHalData->sndCard = (char *) ctrlConfig->uid; + currentCtlHalData->info = (char *) ctrlConfig->info; - if(! json_object_object_get_ex(ctrlConfig->configJ, "hal-metadata", &apiHalmetadata)) - return -5; - - apiMetadataUnpackErr = wrap_json_unpack(apiMetadata, "{s:s s?:s s?:s s?:o s?:o !}", - "uid", NULL, - "version", ¤tCtlHalData->version, - "api", ¤tCtlHalData->name, - "info", NULL, - "require", NULL); - if(apiMetadataUnpackErr) - return -6; - - apiHalmetadataUnpackErr = wrap_json_unpack(apiHalmetadata, "{s:s s:s s:s !}", - "sndcard", ¤tCtlHalData->sndCard, - "author", ¤tCtlHalData->author, - "date", ¤tCtlHalData->date); - if(apiHalmetadataUnpackErr) - return -7; + currentCtlHalData->author = (char *) ctrlConfig->author; + currentCtlHalData->version = (char *) ctrlConfig->version; + currentCtlHalData->date = (char *) ctrlConfig->date; currentCtlHalData->apiHandle = apiHandle; currentCtlHalData->ctrlConfig = ctrlConfig; diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h index b2b42f3..e3d449c 100644 --- a/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h +++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-api-loader.h @@ -25,14 +25,6 @@ #include "../4a-hal-utilities/4a-hal-utilities-data.h" -// Api info definitions -#define HAL_CTLS_API_NAME_MAX_SIZE 32 -#define HAL_CTLS_API_INFO_MAX_SIZE 64 -#define HAL_CTLS_API_SNDCARD_MAX_SIZE 128 -#define HAL_CTLS_API_AUTHOR_MAX_SIZE 32 -#define HAL_CTLS_API_VERSION_MAX_SIZE 16 -#define HAL_CTLS_API_DATE_MAX_SIZE 16 - // Verbs that can be use to create api int HalCtlsCreateApi(afb_dynapi *apiHandle, char *path, struct HalMgrData *HalMgrGlobalData); int HalCtlsCreateAllApi(afb_dynapi *apiHandle, struct HalMgrData *HalMgrGlobalData); diff --git a/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h b/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h index 75653e4..3ae16db 100644 --- a/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h +++ b/4a-hal/4a-hal-utilities/4a-hal-utilities-data.h @@ -36,6 +36,7 @@ struct SpecificHalData { char *name; enum HalStatus status; char *sndCard; + char *info; uint8_t internal; char *author; |