From e1bea2c6430ddadd589fd3377b69ca06226bb872 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 08 二月 2021 11:52:53 +0800
Subject: [PATCH] update
---
src/socket/shm_mod_socket.cpp | 46 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/src/socket/shm_mod_socket.cpp b/src/socket/shm_mod_socket.cpp
index aa02ef3..15d4072 100644
--- a/src/socket/shm_mod_socket.cpp
+++ b/src/socket/shm_mod_socket.cpp
@@ -3,13 +3,18 @@
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);
-}
+// size_t ShmModSocket::remove_keys(int keys[], size_t length) {
+// BusServerSocket::remove_subscripters(keys, length);
+// return shm_socket_remove_keys(keys, length);
+// }
+
+// size_t ShmModSocket::remove_keys_exclude(int keys[], size_t length) {
+// BusServerSocket::remove_subscripters(keys, length);
+// return shm_socket_remove_keys_exclude(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 +28,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);
@@ -79,7 +89,21 @@
*/
int ShmModSocket::sendandrecv(const void *send_buf, const int send_size, const int send_key,
void **recv_buf, int *recv_size, const struct timespec *timeout, int flag){
- return shm_sendandrecv(shm_socket, send_buf, send_size, send_key, recv_buf, recv_size, timeout, flag);
+ int rv = shm_sendandrecv(shm_socket, send_buf, send_size, send_key, recv_buf, recv_size, timeout, flag);
+
+ if(rv == 0) {
+ logger->debug("ShmModSocket::sendandrecv: sendandrecv to %d success.\n", send_key);
+ return 0;
+ }
+
+ 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 绾崇
@@ -94,7 +118,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 = {};
@@ -125,7 +149,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) {
@@ -163,7 +187,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));
@@ -196,7 +220,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