From 3c2b6739208d961cf8b86460d7f05516d044960c Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期三, 31 三月 2021 19:13:42 +0800
Subject: [PATCH] add async recv suport; sync by waiting for async.

---
 src/msg.cpp |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/src/msg.cpp b/src/msg.cpp
index 3a01240..41dd459 100644
--- a/src/msg.cpp
+++ b/src/msg.cpp
@@ -41,12 +41,22 @@
 	msg.add_route()->set_mq_id(&src_id, sizeof(src_id));
 	return msg;
 }
+BHMsg MakeRequest(const MQId &src_id, const std::string &topic, const void *data, const size_t size)
+{
+	DataRequest req;
+	req.set_topic(topic);
+	req.set_data(data, size);
+	const std::string &body(req.SerializeAsString());
+	return MakeRequest(src_id, body.data(), body.size());
+}
 
 BHMsg MakeReply(const void *data, const size_t size)
 {
 	assert(data && size);
 	BHMsg msg(InitMsg(kMsgTypeReply));
-	msg.set_body(data, size);
+	DataReply reply;
+	reply.set_data(data, size);
+	msg.set_body(reply.SerializeAsString());
 	return msg;
 }
 
@@ -77,6 +87,15 @@
 	return msg;
 }
 
+BHMsg MakeQueryTopic(const std::string &topic)
+{
+	BHMsg msg(InitMsg(kMsgTypeQueryTopic));
+	DataQueryTopic query;
+	query.set_topic(topic);
+	msg.set_body(query.SerializeAsString());
+	return msg;
+}
+
 void *Pack(SharedMemory &shm, const BHMsg &msg)
 {
 	uint32_t msg_size = msg.ByteSizeLong();

--
Gitblit v1.8.0