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