From 1f3729698a131b3f701f67adb6a1258aa1235dce Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期二, 20 四月 2021 15:43:53 +0800
Subject: [PATCH] api server callback change tag to src; refactor.

---
 src/bh_api.cpp |   29 +++--------------------------
 1 files changed, 3 insertions(+), 26 deletions(-)

diff --git a/src/bh_api.cpp b/src/bh_api.cpp
index 3844000..cdf2e96 100644
--- a/src/bh_api.cpp
+++ b/src/bh_api.cpp
@@ -246,31 +246,15 @@
 	return ProcNode().ServerSendReply(src, rep);
 }
 
-int BHCleanUp()
-{
-	return 0;
-}
-
-namespace
-{
-typedef std::function<bool(const void *, const int)> ServerSender;
-} // namespace
-
 void BHStartWorker(FServerCallback server_cb, FSubDataCallback sub_cb, FClientCallback client_cb)
 {
-	TopicNode::ServerCB on_req;
+	TopicNode::ServerAsyncCB on_req;
 	TopicNode::SubDataCB on_sub;
 	TopicNode::RequestResultCB on_reply;
 	if (server_cb) {
-		on_req = [server_cb](const std::string &proc_id, const MsgRequestTopic &request, MsgRequestTopicReply &reply) {
+		on_req = [server_cb](void *src, std::string &proc_id, const MsgRequestTopic &request) {
 			std::string sreq(request.SerializeAsString());
-			bool r = false;
-			ServerSender sender = [&](const void *p, const int len) {
-				r = reply.ParseFromArray(p, len);
-				return r;
-			};
-			server_cb(proc_id.data(), proc_id.size(), sreq.data(), sreq.size(), &sender);
-			return r;
+			server_cb(proc_id.data(), proc_id.size(), sreq.data(), sreq.size(), src);
 		};
 	}
 	if (sub_cb) {
@@ -289,13 +273,6 @@
 	}
 
 	ProcNode().Start(on_req, on_sub, on_reply);
-}
-int BHServerCallbackReply(const void *tag,
-                          const void *data,
-                          const int data_len)
-{
-	auto &sender = *(const ServerSender *) (tag);
-	return sender(data, data_len);
 }
 
 void BHFree(void *data, int size)

--
Gitblit v1.8.0