diff options
author | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2019-10-11 14:54:52 +0200 |
---|---|---|
committer | Jonathan Aillet <jonathan.aillet@iot.bzh> | 2019-10-17 11:29:18 +0200 |
commit | 4063c990f8b146504bcc49b2fb1d1082f58bf707 (patch) | |
tree | 0bc4a1c934d77f34948a03734e17fe1dddffcb0f /src/4a-internals-hal/4a-internals-hal-api-loader.c | |
parent | 502b8d11008e2e7ac494d9fca0fe722d66755469 (diff) |
Move hal api delete code into a function
BUG-AGL: SPEC-2885
Change-Id: I23c605440782f8caeef30c1fe41f4cac5b704dbb
Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-api-loader.c')
-rw-r--r-- | src/4a-internals-hal/4a-internals-hal-api-loader.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-api-loader.c b/src/4a-internals-hal/4a-internals-hal-api-loader.c index 5334bdf..ba742f1 100644 --- a/src/4a-internals-hal/4a-internals-hal-api-loader.c +++ b/src/4a-internals-hal/4a-internals-hal-api-loader.c @@ -199,6 +199,44 @@ int InternalHalCreateApi(afb_api_t apiHandle, char *path, struct HalMgrData *hal return 0; } +int InternalHalDeleteApi(afb_api_t apiHandle, struct cds_list_head *halDataListHead, struct HalData *toDeleteHalData) +{ + int err; + + char *toDeleteApiName; + + if(! apiHandle || ! toDeleteHalData) { + AFB_API_ERROR(apiHandle, "Invalid argument(s)"); + return -1; + } + + toDeleteApiName = strdup(toDeleteHalData->apiName); + if(! toDeleteApiName) { + AFB_API_ERROR(apiHandle, "Didn't succeed to store (allocate) 'apiName' string"); + return -2; + } + + err = HalUtlRemoveHalDataAndDeleteHalApi(toDeleteHalData->internalHalData->apiHandle, + toDeleteHalData, + halDataListHead); + if(err) { + AFB_API_ERROR(apiHandle, + "Error %i happened while trying to delete '%s' api and to remove all its data", + err, + toDeleteApiName); + free(toDeleteApiName); + return -3; + } + + AFB_API_NOTICE(apiHandle, + "Api '%s' and all its data has been deleted", + toDeleteApiName); + + free(toDeleteApiName); + + return 0; +} + int InternalHalCreateAllApi(afb_api_t apiHandle, struct HalMgrData *halMgrData) { int index; |