From 13c503b73b4ecc8ce4a6e344f9ac15202985d686 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 20 七月 2021 19:48:58 +0800
Subject: [PATCH] fix memory leak

---
 src/bh_api.h |  178 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 108 insertions(+), 70 deletions(-)

diff --git a/src/bh_api.h b/src/bh_api.h
index eeb47a5..8178e55 100644
--- a/src/bh_api.h
+++ b/src/bh_api.h
@@ -5,96 +5,134 @@
 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);
-
-bool BHRegisterTopics(const void *topics,
-                      const int topics_len,
+int BHApiIn1Out1Proxy(FBHApiIn1Out1 func,
+                      const void *request,
+                      const int request_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);
+int BHRegister(const void *proc_info,
+               const int proc_info_len,
+               void **reply,
+               int *reply_len,
+               const int timeout_ms);
 
-typedef void (*FSubDataCallback)(const void *proc_id,
-                                 const int proc_id_len,
-                                 const void *data,
-                                 const int data_len);
-
-typedef void (*FServerCallback)(const void *proc_id,
-                                const int proc_id_len,
-                                const void *data,
-                                const int data_len,
-                                BHServerCallbackTag *tag);
-
-typedef void (*FClientCallback)(const void *proc_id,
-                                const int proc_id_len,
-                                const void *msg_id,
-                                const int msg_id_len,
-                                const void *data,
-                                const 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,
+int BHUnregister(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 BHRegisterTopics(const void *topics,
+                     const int topics_len,
+                     void **reply,
+                     int *reply_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 BHQueryTopicAddress(const void *remote,
+                        const int remote_len,
+                        const void *topics,
+                        const int topics_len,
+                        void **reply,
+                        int *reply_len,
+                        const int timeout_ms);
 
-bool BHAsyncRequest(const void *request,
-                    const int request_len,
-                    void **msg_id,
-                    int *msg_id_len);
+int BHQueryProcs(const void *remote,
+                 const int remote_len,
+                 const void *query,
+                 const int query_len,
+                 void **reply,
+                 int *reply_len,
+                 const int timeout_ms);
 
-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 BHSubscribeTopics(const void *topics,
+                      const int topics_len,
+                      void **reply,
+                      int *reply_len,
+                      const int timeout_ms);
+int BHSubscribeNetTopics(const void *topics,
+                         const int topics_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);
+typedef void (*FSubDataCallback)(const void *proc_id,
+                                 int proc_id_len,
+                                 const void *data,
+                                 int data_len);
 
-bool BHSendReply(BHSrcInfo *src,
-                 const void *reply,
-                 const int reply_len);
+typedef void (*FServerCallback)(const void *proc_id,
+                                int proc_id_len,
+                                const void *data,
+                                int data_len,
+                                void *src);
 
-// int BHCleanUp();
+typedef void (*FClientCallback)(const void *proc_id,
+                                int proc_id_len,
+                                const void *msg_id,
+                                int msg_id_len,
+                                const void *data,
+                                int data_len);
+
+void BHStartWorker(FServerCallback server_cb, FSubDataCallback sub_cb, FClientCallback client_cb);
+
+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);
+
+int BHPublish(const void *msgpub,
+              const 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);
+
+int BHAsyncRequest(const void *remote,
+                   const int remote_len,
+                   const void *request,
+                   const int request_len,
+                   void **msg_id,
+                   int *msg_id_len);
+
+int BHRequest(const void *remote,
+              const int remote_len,
+              const void *request,
+              const int request_len,
+              void **proc_id,
+              int *proc_id_len,
+              void **reply,
+              int *reply_len,
+              const int timeout_ms);
+
+int BHReadRequest(void **proc_id,
+                  int *proc_id_len,
+                  void **request,
+                  int *request_len,
+                  void **src,
+                  const int timeout_ms);
+
+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