diff --git a/library/libsds.h b/library/libsds.h index c11a432..5d25140 100644 --- a/library/libsds.h +++ b/library/libsds.h @@ -23,13 +23,10 @@ typedef void (*SdsCallBack) (int callerRet, const char* msg, size_t len, void* u // --- Core API Functions --- -/** - * @brief Creates a new ReliabilityManager instance. - * @param channelId A unique identifier for the communication channel. - * @return An opaque handle (void*) representing the instance, or NULL on failure. - */ + void* NewReliabilityManager(const char* channelId, SdsCallBack callback, void* userData); +void SetEventCallback(void* ctx, SdsCallBack callback, void* userData); #ifdef __cplusplus } diff --git a/library/libsds.nim b/library/libsds.nim index 767586c..903bbec 100644 --- a/library/libsds.nim +++ b/library/libsds.nim @@ -140,5 +140,12 @@ proc NewReliabilityManager( return ctx +proc SetEventCallback( + ctx: ptr SdsContext, callback: SdsCallBack, userData: pointer +) {.dynlib, exportc.} = + initializeLibrary() + ctx[].eventCallback = cast[pointer](callback) + ctx[].eventUserData = userData + ### End of exported procs ################################################################################