From 3931f83205f153f2bc7fc36d1a894cdc3f14b4db Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期三, 21 四月 2021 16:52:51 +0800 Subject: [PATCH] change node socket to vector; try lock free queue. --- src/bh_api.h | 127 ++++++++++++++++++++++-------------------- 1 files changed, 67 insertions(+), 60 deletions(-) diff --git a/src/bh_api.h b/src/bh_api.h index eeb47a5..5c64ae7 100644 --- a/src/bh_api.h +++ b/src/bh_api.h @@ -5,96 +5,103 @@ extern "C" { #endif -struct BHSrcInfo; -struct BHServerCallbackTag; +typedef int (*FBHApiIn1Out1)(const void *proc_info, + const int proc_info_len, + void **reply, + int *reply_len, + const int timeout_ms); -bool BHRegister(const void *proc_info, - const int proc_info_len, - void **reply, - int *reply_len, - const int timeout_ms); +int BHApiIn1Out1Proxy(FBHApiIn1Out1 func, + const void *request, + const int request_len, + void **reply, + int *reply_len, + const int timeout_ms); -bool BHRegisterTopics(const void *topics, +int BHRegister(const void *proc_info, + const int proc_info_len, + void **reply, + int *reply_len, + const int timeout_ms); + +int BHRegisterTopics(const void *topics, + const int topics_len, + void **reply, + int *reply_len, + const int timeout_ms); + +int BHSubscribeTopics(const void *topics, const int topics_len, void **reply, int *reply_len, const int timeout_ms); -bool BHSubscribeTopics(const void *topics, - const int topics_len, - void **reply, - int *reply_len, - const int timeout_ms); - typedef void (*FSubDataCallback)(const void *proc_id, - const int proc_id_len, + int proc_id_len, const void *data, - const int data_len); + int data_len); typedef void (*FServerCallback)(const void *proc_id, - const int proc_id_len, + int proc_id_len, const void *data, - const int data_len, - BHServerCallbackTag *tag); + int data_len, + void *src); typedef void (*FClientCallback)(const void *proc_id, - const int proc_id_len, + int proc_id_len, const void *msg_id, - const int msg_id_len, + int msg_id_len, const void *data, - const int data_len); + int data_len); void BHStartWorker(FServerCallback server_cb, FSubDataCallback sub_cb, FClientCallback client_cb); -bool BHServerCallbackReply(const BHServerCallbackTag *tag, - const void *data, - const int data_len); -bool BHHeartBeatEasy(const int timeout_ms); -bool BHHeartBeat(const void *proc_info, - const int proc_info_len, - void **reply, - int *reply_len, - const int timeout_ms); +int BHHeartbeatEasy(const int timeout_ms); +int BHHeartbeat(const void *proc_info, + const int proc_info_len, + void **reply, + int *reply_len, + const int timeout_ms); -bool BHPublish(const void *msgpub, - const int msgpub_len, - const int timeout_ms); +int BHPublish(const void *msgpub, + const int msgpub_len, + const int timeout_ms); -bool BHReadSub(const void *proc_id, - const int proc_id_len, - void **msgpub, - int *msgpub_len, - const int timeout_ms); +int BHReadSub(void **proc_id, + int *proc_id_len, + void **msgpub, + int *msgpub_len, + const int timeout_ms); -bool BHAsyncRequest(const void *request, - const int request_len, - void **msg_id, - int *msg_id_len); +int BHAsyncRequest(const void *request, + const int request_len, + void **msg_id, + int *msg_id_len); -bool BHRequest(const void *request, - const int request_len, - void **proc_id, - int *proc_id_len, - void **reply, - int *reply_len, - const int timeout_ms); +int BHRequest(const void *request, + const int request_len, + void **proc_id, + int *proc_id_len, + void **reply, + int *reply_len, + const int timeout_ms); -bool BHReadRequest(void **proc_id, - int *proc_id_len, - void **request, - int *request_len, - BHSrcInfo **src, - const int timeout_ms); +int BHReadRequest(void **proc_id, + int *proc_id_len, + void **request, + int *request_len, + void **src, + const int timeout_ms); -bool BHSendReply(BHSrcInfo *src, - const void *reply, - const int reply_len); +int BHSendReply(void *src, + const void *reply, + const int reply_len); // int BHCleanUp(); void BHFree(void *buf, int size); -int BHGetLastError(void **msg, int &msg_len); +int BHGetLastError(void **msg, int *msg_len); #ifdef __cplusplus } -- Gitblit v1.8.0