chore: adding prefix to exported functions (#81)

This commit is contained in:
gabrielmer 2025-06-17 13:28:48 +02:00 committed by GitHub
parent 34e45fc08f
commit 189dbde9d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,17 +8,17 @@ package waku
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
extern void globalEventCallback(int ret, char* msg, size_t len, void* userData); extern void wakuGlobalEventCallback(int ret, char* msg, size_t len, void* userData);
typedef struct { typedef struct {
int ret; int ret;
char* msg; char* msg;
size_t len; size_t len;
void* ffiWg; void* ffiWg;
} Resp; } WakuResp;
static void* allocResp(void* wg) { static void* allocResp(void* wg) {
Resp* r = calloc(1, sizeof(Resp)); WakuResp* r = calloc(1, sizeof(WakuResp));
r->ffiWg = wg; r->ffiWg = wg;
return r; return r;
} }
@ -33,7 +33,7 @@ package waku
if (resp == NULL) { if (resp == NULL) {
return NULL; return NULL;
} }
Resp* m = (Resp*) resp; WakuResp* m = (WakuResp*) resp;
return m->msg; return m->msg;
} }
@ -41,7 +41,7 @@ package waku
if (resp == NULL) { if (resp == NULL) {
return 0; return 0;
} }
Resp* m = (Resp*) resp; WakuResp* m = (WakuResp*) resp;
return m->len; return m->len;
} }
@ -49,57 +49,57 @@ package waku
if (resp == NULL) { if (resp == NULL) {
return 0; return 0;
} }
Resp* m = (Resp*) resp; WakuResp* m = (WakuResp*) resp;
return m->ret; return m->ret;
} }
// resp must be set != NULL in case interest on retrieving data from the callback // resp must be set != NULL in case interest on retrieving data from the callback
void GoCallback(int ret, char* msg, size_t len, void* resp); void WakuGoCallback(int ret, char* msg, size_t len, void* resp);
static void* cGoWakuNew(const char* configJson, void* resp) { static void* cGoWakuNew(const char* configJson, void* resp) {
// We pass NULL because we are not interested in retrieving data from this callback // We pass NULL because we are not interested in retrieving data from this callback
void* ret = waku_new(configJson, (WakuCallBack) GoCallback, resp); void* ret = waku_new(configJson, (WakuCallBack) WakuGoCallback, resp);
return ret; return ret;
} }
static void cGoWakuStart(void* wakuCtx, void* resp) { static void cGoWakuStart(void* wakuCtx, void* resp) {
waku_start(wakuCtx, (WakuCallBack) GoCallback, resp); waku_start(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuStop(void* wakuCtx, void* resp) { static void cGoWakuStop(void* wakuCtx, void* resp) {
waku_stop(wakuCtx, (WakuCallBack) GoCallback, resp); waku_stop(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuDestroy(void* wakuCtx, void* resp) { static void cGoWakuDestroy(void* wakuCtx, void* resp) {
waku_destroy(wakuCtx, (WakuCallBack) GoCallback, resp); waku_destroy(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuStartDiscV5(void* wakuCtx, void* resp) { static void cGoWakuStartDiscV5(void* wakuCtx, void* resp) {
waku_start_discv5(wakuCtx, (WakuCallBack) GoCallback, resp); waku_start_discv5(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuStopDiscV5(void* wakuCtx, void* resp) { static void cGoWakuStopDiscV5(void* wakuCtx, void* resp) {
waku_stop_discv5(wakuCtx, (WakuCallBack) GoCallback, resp); waku_stop_discv5(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuVersion(void* wakuCtx, void* resp) { static void cGoWakuVersion(void* wakuCtx, void* resp) {
waku_version(wakuCtx, (WakuCallBack) GoCallback, resp); waku_version(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuSetEventCallback(void* wakuCtx) { static void cGoWakuSetEventCallback(void* wakuCtx) {
// The 'globalEventCallback' Go function is shared amongst all possible Waku instances. // The 'wakuGlobalEventCallback' Go function is shared amongst all possible Waku instances.
// Given that the 'globalEventCallback' is shared, we pass again the // Given that the 'wakuGlobalEventCallback' is shared, we pass again the
// wakuCtx instance but in this case is needed to pick up the correct method // wakuCtx instance but in this case is needed to pick up the correct method
// that will handle the event. // that will handle the event.
// In other words, for every call the libwaku makes to globalEventCallback, // In other words, for every call the libwaku makes to wakuGlobalEventCallback,
// the 'userData' parameter will bring the context of the node that registered // the 'userData' parameter will bring the context of the node that registered
// that globalEventCallback. // that wakuGlobalEventCallback.
// This technique is needed because cgo only allows to export Go functions and not methods. // This technique is needed because cgo only allows to export Go functions and not methods.
waku_set_event_callback(wakuCtx, (WakuCallBack) globalEventCallback, wakuCtx); waku_set_event_callback(wakuCtx, (WakuCallBack) wakuGlobalEventCallback, wakuCtx);
} }
static void cGoWakuContentTopic(void* wakuCtx, static void cGoWakuContentTopic(void* wakuCtx,
@ -114,16 +114,16 @@ package waku
appVersion, appVersion,
contentTopicName, contentTopicName,
encoding, encoding,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuPubsubTopic(void* wakuCtx, char* topicName, void* resp) { static void cGoWakuPubsubTopic(void* wakuCtx, char* topicName, void* resp) {
waku_pubsub_topic(wakuCtx, topicName, (WakuCallBack) GoCallback, resp); waku_pubsub_topic(wakuCtx, topicName, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuDefaultPubsubTopic(void* wakuCtx, void* resp) { static void cGoWakuDefaultPubsubTopic(void* wakuCtx, void* resp) {
waku_default_pubsub_topic(wakuCtx, (WakuCallBack) GoCallback, resp); waku_default_pubsub_topic(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuRelayPublish(void* wakuCtx, static void cGoWakuRelayPublish(void* wakuCtx,
@ -136,14 +136,14 @@ package waku
pubSubTopic, pubSubTopic,
jsonWakuMessage, jsonWakuMessage,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuRelaySubscribe(void* wakuCtx, char* pubSubTopic, void* resp) { static void cGoWakuRelaySubscribe(void* wakuCtx, char* pubSubTopic, void* resp) {
waku_relay_subscribe(wakuCtx, waku_relay_subscribe(wakuCtx,
pubSubTopic, pubSubTopic,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -152,7 +152,7 @@ package waku
clusterId, clusterId,
shardId, shardId,
publicKey, publicKey,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -160,7 +160,7 @@ package waku
waku_relay_unsubscribe(wakuCtx, waku_relay_unsubscribe(wakuCtx,
pubSubTopic, pubSubTopic,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -168,7 +168,7 @@ package waku
waku_connect(wakuCtx, waku_connect(wakuCtx,
peerMultiAddr, peerMultiAddr,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -182,7 +182,7 @@ package waku
peerMultiAddr, peerMultiAddr,
protocol, protocol,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -196,65 +196,65 @@ package waku
peerId, peerId,
protocol, protocol,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuDisconnectPeerById(void* wakuCtx, char* peerId, void* resp) { static void cGoWakuDisconnectPeerById(void* wakuCtx, char* peerId, void* resp) {
waku_disconnect_peer_by_id(wakuCtx, waku_disconnect_peer_by_id(wakuCtx,
peerId, peerId,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuDisconnectAllPeers(void* wakuCtx, void* resp) { static void cGoWakuDisconnectAllPeers(void* wakuCtx, void* resp) {
waku_disconnect_all_peers(wakuCtx, waku_disconnect_all_peers(wakuCtx,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuListenAddresses(void* wakuCtx, void* resp) { static void cGoWakuListenAddresses(void* wakuCtx, void* resp) {
waku_listen_addresses(wakuCtx, (WakuCallBack) GoCallback, resp); waku_listen_addresses(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetMyENR(void* ctx, void* resp) { static void cGoWakuGetMyENR(void* ctx, void* resp) {
waku_get_my_enr(ctx, (WakuCallBack) GoCallback, resp); waku_get_my_enr(ctx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetMyPeerId(void* ctx, void* resp) { static void cGoWakuGetMyPeerId(void* ctx, void* resp) {
waku_get_my_peerid(ctx, (WakuCallBack) GoCallback, resp); waku_get_my_peerid(ctx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuPingPeer(void* ctx, char* peerAddr, int timeoutMs, void* resp) { static void cGoWakuPingPeer(void* ctx, char* peerAddr, int timeoutMs, void* resp) {
waku_ping_peer(ctx, peerAddr, timeoutMs, (WakuCallBack) GoCallback, resp); waku_ping_peer(ctx, peerAddr, timeoutMs, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetPeersInMesh(void* ctx, char* pubSubTopic, void* resp) { static void cGoWakuGetPeersInMesh(void* ctx, char* pubSubTopic, void* resp) {
waku_relay_get_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); waku_relay_get_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetNumPeersInMesh(void* ctx, char* pubSubTopic, void* resp) { static void cGoWakuGetNumPeersInMesh(void* ctx, char* pubSubTopic, void* resp) {
waku_relay_get_num_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); waku_relay_get_num_peers_in_mesh(ctx, pubSubTopic, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetNumConnectedRelayPeers(void* ctx, char* pubSubTopic, void* resp) { static void cGoWakuGetNumConnectedRelayPeers(void* ctx, char* pubSubTopic, void* resp) {
waku_relay_get_num_connected_peers(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); waku_relay_get_num_connected_peers(ctx, pubSubTopic, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetConnectedRelayPeers(void* ctx, char* pubSubTopic, void* resp) { static void cGoWakuGetConnectedRelayPeers(void* ctx, char* pubSubTopic, void* resp) {
waku_relay_get_connected_peers(ctx, pubSubTopic, (WakuCallBack) GoCallback, resp); waku_relay_get_connected_peers(ctx, pubSubTopic, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetConnectedPeers(void* wakuCtx, void* resp) { static void cGoWakuGetConnectedPeers(void* wakuCtx, void* resp) {
waku_get_connected_peers(wakuCtx, (WakuCallBack) GoCallback, resp); waku_get_connected_peers(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetPeerIdsFromPeerStore(void* wakuCtx, void* resp) { static void cGoWakuGetPeerIdsFromPeerStore(void* wakuCtx, void* resp) {
waku_get_peerids_from_peerstore(wakuCtx, (WakuCallBack) GoCallback, resp); waku_get_peerids_from_peerstore(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuGetConnectedPeersInfo(void* wakuCtx, void* resp) { static void cGoWakuGetConnectedPeersInfo(void* wakuCtx, void* resp) {
waku_get_connected_peers_info(wakuCtx, (WakuCallBack) GoCallback, resp); waku_get_connected_peers_info(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
static void cGoWakuLightpushPublish(void* wakuCtx, static void cGoWakuLightpushPublish(void* wakuCtx,
@ -265,7 +265,7 @@ package waku
waku_lightpush_publish(wakuCtx, waku_lightpush_publish(wakuCtx,
pubSubTopic, pubSubTopic,
jsonWakuMessage, jsonWakuMessage,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -279,7 +279,7 @@ package waku
jsonQuery, jsonQuery,
peerAddr, peerAddr,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -289,7 +289,7 @@ package waku
waku_peer_exchange_request(wakuCtx, waku_peer_exchange_request(wakuCtx,
numPeers, numPeers,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -299,7 +299,7 @@ package waku
waku_get_peerids_by_protocol(wakuCtx, waku_get_peerids_by_protocol(wakuCtx,
protocol, protocol,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
@ -313,12 +313,12 @@ package waku
entTreeUrl, entTreeUrl,
nameDnsServer, nameDnsServer,
timeoutMs, timeoutMs,
(WakuCallBack) GoCallback, (WakuCallBack) WakuGoCallback,
resp); resp);
} }
static void cGoWakuIsOnline(void* wakuCtx, void* resp) { static void cGoWakuIsOnline(void* wakuCtx, void* resp) {
waku_is_online(wakuCtx, (WakuCallBack) GoCallback, resp); waku_is_online(wakuCtx, (WakuCallBack) WakuGoCallback, resp);
} }
*/ */
@ -352,10 +352,10 @@ const MsgChanBufferSize = 1024
const TopicHealthChanBufferSize = 1024 const TopicHealthChanBufferSize = 1024
const ConnectionChangeChanBufferSize = 1024 const ConnectionChangeChanBufferSize = 1024
//export GoCallback //export WakuGoCallback
func GoCallback(ret C.int, msg *C.char, len C.size_t, resp unsafe.Pointer) { func WakuGoCallback(ret C.int, msg *C.char, len C.size_t, resp unsafe.Pointer) {
if resp != nil { if resp != nil {
m := (*C.Resp)(resp) m := (*C.WakuResp)(resp)
m.ret = ret m.ret = ret
m.msg = msg m.msg = msg
m.len = len m.len = len
@ -438,8 +438,8 @@ func unregisterNode(node *WakuNode) {
delete(nodeRegistry, node.wakuCtx) delete(nodeRegistry, node.wakuCtx)
} }
//export globalEventCallback //export wakuGlobalEventCallback
func globalEventCallback(callerRet C.int, msg *C.char, len C.size_t, userData unsafe.Pointer) { func wakuGlobalEventCallback(callerRet C.int, msg *C.char, len C.size_t, userData unsafe.Pointer) {
if callerRet == C.RET_OK { if callerRet == C.RET_OK {
eventStr := C.GoStringN(msg, C.int(len)) eventStr := C.GoStringN(msg, C.int(len))
node, ok := nodeRegistry[userData] // userData contains node's ctx node, ok := nodeRegistry[userData] // userData contains node's ctx
@ -449,9 +449,9 @@ func globalEventCallback(callerRet C.int, msg *C.char, len C.size_t, userData un
} else { } else {
if len != 0 { if len != 0 {
errMsg := C.GoStringN(msg, C.int(len)) errMsg := C.GoStringN(msg, C.int(len))
Error("globalEventCallback retCode not ok, retCode: %v: %v", callerRet, errMsg) Error("wakuGlobalEventCallback retCode not ok, retCode: %v: %v", callerRet, errMsg)
} else { } else {
Error("globalEventCallback retCode not ok, retCode: %v", callerRet) Error("wakuGlobalEventCallback retCode not ok, retCode: %v", callerRet)
} }
} }
} }