From f52f2c2828047c2f30d30fc1fe2b54d8db146d49 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 25 二月 2021 15:56:35 +0800
Subject: [PATCH] update

---
 src/socket/bus_server_socket.cpp |   56 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/src/socket/bus_server_socket.cpp b/src/socket/bus_server_socket.cpp
index bea4c21..657941b 100644
--- a/src/socket/bus_server_socket.cpp
+++ b/src/socket/bus_server_socket.cpp
@@ -6,7 +6,7 @@
 static Logger *logger = LoggerFactory::getLogger();
 
 void BusServerSocket::foreach_subscripters(std::function<void(SHMKeySet *, int)>  cb) {
-	SHMTopicSubMap *topic_sub_map = mem_pool_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
+	SHMTopicSubMap *topic_sub_map = shm_mm_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
 	SHMKeySet *subscripter_set;
 	SHMKeySet::iterator set_iter;
 	SHMTopicSubMap::iterator map_iter;
@@ -29,7 +29,7 @@
 	int key;
 	for(int i = 0; i < length; i++) {
 		key = keys[i];
-		SHMTopicSubMap *topic_sub_map = mem_pool_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
+		SHMTopicSubMap *topic_sub_map = shm_mm_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
 		SHMKeySet *subscripter_set;
 		SHMKeySet::iterator set_iter;
 		SHMTopicSubMap::iterator map_iter;
@@ -52,31 +52,13 @@
 
 BusServerSocket::BusServerSocket() {
 	logger->debug("BusServerSocket Init");
-	shm_socket = shm_open_socket(SHM_SOCKET_DGRAM);
+	shm_socket = shm_socket_open(SHM_SOCKET_DGRAM);
 	topic_sub_map = NULL;
 
 }
 
 BusServerSocket::~BusServerSocket() {
-	SHMKeySet *subscripter_set;
-	SHMTopicSubMap::iterator map_iter;
-
-	stop();
-	 
-	if(topic_sub_map != NULL) {
-		for (map_iter = topic_sub_map->begin(); map_iter != topic_sub_map->end(); map_iter++) {
-			subscripter_set = map_iter->second;
-			if(subscripter_set != NULL) {
-				subscripter_set->clear();
-				mm_free((void *)subscripter_set);
-			}
-
-		}
-		topic_sub_map->clear();
-		mem_pool_free_by_key(SHM_BUS_MAP_KEY);
-	}
-	shm_close_socket(shm_socket);
-	logger->debug("BusServerSocket destory 3");
+	destroy();
 }
 
 
@@ -97,9 +79,9 @@
  * 鍚姩bus
  * 
  * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜
-*/
+ */
 int  BusServerSocket::start(){
-	topic_sub_map =	mem_pool_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
+	topic_sub_map =	shm_mm_attach<SHMTopicSubMap>(SHM_BUS_MAP_KEY);
  
 	_run_proxy_();
 	return 0;
@@ -111,8 +93,6 @@
 	if( shm_socket->key <= 0) {
 		return -1;
 	}
-	// snprintf(buf, 128, "%sstop%s%s%s%s", ACTION_LIDENTIFIER, ACTION_RIDENTIFIER, TOPIC_LIDENTIFIER, "", TOPIC_RIDENTIFIER);
-	// return shm_sendto(shm_socket, buf, strlen(buf), shm_socket->key, NULL, 0);
 	bus_head_t head = {};
 	memcpy(head.action, "stop", sizeof(head.action));
 	head.topic_size = 0;
@@ -122,13 +102,33 @@
 	void *buf;
 	int size = ShmModSocket::get_bus_sendbuf(head, NULL, 0, NULL,  0, &buf);
 	if(size > 0) {
-		ret = client.sendandrecv_unsafe( buf, size, shm_socket->key, NULL, NULL);
+		ret = client.sendto( buf, size, shm_socket->key);
 		free(buf);
 		return ret;
 	} else {
 		return -1;
 	}
 
+}
+
+int  BusServerSocket::destroy() {
+	SHMKeySet *subscripter_set;
+	SHMTopicSubMap::iterator map_iter;
+	if(topic_sub_map != NULL) {
+		for (map_iter = topic_sub_map->begin(); map_iter != topic_sub_map->end(); map_iter++) {
+			subscripter_set = map_iter->second;
+			if(subscripter_set != NULL) {
+				subscripter_set->clear();
+				mm_free((void *)subscripter_set);
+			}
+
+		}
+		topic_sub_map->clear();
+		shm_mm_free_by_key(SHM_BUS_MAP_KEY);
+	}
+	shm_socket_close(shm_socket);
+	logger->debug("BusServerSocket destory 3");
+	return 0;
 }
 
 /*
@@ -280,8 +280,6 @@
 		free(buf);
 	}
 
-
-	shm_sendto(shm_socket, "stop_finished", strlen( "stop_finished") +1, key);
 
 	return NULL;
 }

--
Gitblit v1.8.0