From bc2afe32e8db4318f2a2adea49d85b10d0d4cc97 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 08 二月 2021 16:51:24 +0800
Subject: [PATCH] update
---
src/socket/bus_server_socket.cpp | 48 +++++++++++++++++++++++-------------------------
1 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/src/socket/bus_server_socket.cpp b/src/socket/bus_server_socket.cpp
index 3904297..6aa6a95 100644
--- a/src/socket/bus_server_socket.cpp
+++ b/src/socket/bus_server_socket.cpp
@@ -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();
}
@@ -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( 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();
+ mem_pool_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