From 8df1ff06b931b0e414ed435a033f508867b345b7 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 23 二月 2021 14:40:38 +0800 Subject: [PATCH] update --- src/socket/shm_mod_socket.cpp | 27 +++++++++++++++++---------- 1 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/socket/shm_mod_socket.cpp b/src/socket/shm_mod_socket.cpp index 760c421..466d0b5 100644 --- a/src/socket/shm_mod_socket.cpp +++ b/src/socket/shm_mod_socket.cpp @@ -3,13 +3,9 @@ static Logger *logger = LoggerFactory::getLogger(); -size_t ShmModSocket::remove_keys(int keys[], size_t length) { - BusServerSocket::remove_subscripters(keys, length); - return shm_socket_remove_keys(keys, length); -} ShmModSocket::ShmModSocket() { - shm_socket = shm_open_socket(SHM_SOCKET_DGRAM); + shm_socket = shm_socket_open(SHM_SOCKET_DGRAM); bus_set = new std::set<int>; } @@ -23,8 +19,13 @@ delete bus_set; } - shm_close_socket(shm_socket); + shm_socket_close(shm_socket); } + +int ShmModSocket::stop() { + return shm_socket_stop(shm_socket); +} + int ShmModSocket::bind(int key) { return shm_socket_bind(shm_socket, key); @@ -89,6 +90,12 @@ logger->debug("ShmModSocket::sendandrecv : sendandrecv to %d failed %s", send_key, bus_strerror(rv)); return rv; } + + +int ShmModSocket::recvandsend( recvandsend_callback_fn callback, + const struct timespec *timeout , int flag, void * user_data ) { + return shm_recvandsend(shm_socket, callback, timeout, flag, user_data); +} // // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 // int ShmModSocket::sendandrecv_unsafe(const void *send_buf, const int send_size, const int send_key, @@ -102,7 +109,7 @@ * @size 涓婚闀垮害 * @key 鎬荤嚎绔彛 */ -int ShmModSocket::sub(char *topic, int topic_size, int key, +int ShmModSocket::sub(const char *topic, int topic_size, int key, const struct timespec *timeout, int flags) { int ret; bus_head_t head = {}; @@ -133,7 +140,7 @@ * @size 涓婚闀垮害 * @key 鎬荤嚎绔彛 */ -int ShmModSocket::desub(char *topic, int topic_size, int key, const struct timespec *timeout, int flags) { +int ShmModSocket::desub(const char *topic, int topic_size, int key, const struct timespec *timeout, int flags) { // char buf[8192]; int ret; if(topic == NULL) { @@ -171,7 +178,7 @@ * @content 涓婚鍐呭 * @key 鎬荤嚎绔彛 */ -int ShmModSocket::pub(char *topic, int topic_size, void *content, int content_size, int key, const struct timespec *timeout, int flags) { +int ShmModSocket::pub(const char *topic, int topic_size, const void *content, int content_size, int key, const struct timespec *timeout, int flags) { int ret; bus_head_t head = {}; memcpy(head.action, "pub", sizeof(head.action)); @@ -204,7 +211,7 @@ // ============================================================================= int ShmModSocket::get_bus_sendbuf(bus_head_t &request_head, - void *topic_buf, int topic_size, void *content_buf, int content_size, void **retbuf) { + const void *topic_buf, int topic_size, const void *content_buf, int content_size, void **retbuf) { int buf_size; char *buf; -- Gitblit v1.8.0