adding CleanupReliabilityManager

This commit is contained in:
Gabriel mermelstein 2025-04-10 12:52:04 +03:00
parent de702d223a
commit 6235fb1876
No known key found for this signature in database
GPG Key ID: 82B8134785FEAE0D
2 changed files with 20 additions and 1 deletions

View File

@ -28,6 +28,9 @@ void* NewReliabilityManager(const char* channelId, SdsCallBack callback, void* u
void SetEventCallback(void* ctx, SdsCallBack callback, void* userData);
int CleanupReliabilityManager(void* ctx, SdsCallBack callback, void* userData);
#ifdef __cplusplus
}
#endif

View File

@ -112,7 +112,7 @@ proc NewReliabilityManager(
): pointer {.dynlib, exportc, cdecl.} =
initializeLibrary()
## Creates a new instance of the WakuNode.
## Creates a new instance of the Reliability Manager.
if isNil(callback):
echo "error: missing callback in NewReliabilityManager"
return nil
@ -147,5 +147,21 @@ proc SetEventCallback(
ctx[].eventCallback = cast[pointer](callback)
ctx[].eventUserData = userData
proc CleanupReliabilityManager(
ctx: ptr SdsContext, callback: SdsCallBack, userData: pointer
): cint {.dynlib, exportc.} =
initializeLibrary()
checkLibsdsParams(ctx, callback, userData)
sds_thread.destroySdsThread(ctx).isOkOr:
let msg = "libsds error: " & $error
callback(RET_ERR, unsafeAddr msg[0], cast[csize_t](len(msg)), userData)
return RET_ERR
## always need to invoke the callback although we don't retrieve value to the caller
callback(RET_OK, nil, 0, userData)
return RET_OK
### End of exported procs
################################################################################