From 14c345b38d57fd814f217eb8465963a08ca79f7e Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期五, 05 二月 2021 17:41:09 +0800 Subject: [PATCH] update --- src/socket/shm_socket.h | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/socket/shm_socket.h b/src/socket/shm_socket.h index 377ba4e..516a343 100644 --- a/src/socket/shm_socket.h +++ b/src/socket/shm_socket.h @@ -14,13 +14,15 @@ }; - + +#define BUS_ACTION_STOP 1 typedef struct shm_packet_t { int key; size_t size; void * buf; char uuid[64]; + int action; } shm_packet_t; @@ -41,15 +43,17 @@ } shm_socket_t; -// typedef void (*recv_callback_fn)(void **sendbuf, int *sendsize); -typedef std::function<void(void **sendbuf, int *sendsize)> recv_callback_fn; +typedef std::function<void(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void *user_data)> recvandsend_callback_fn; size_t shm_socket_remove_keys(int keys[], size_t length); +size_t shm_socket_remove_keys_exclude(int keys[], size_t length); shm_socket_t *shm_open_socket(shm_socket_type_t socket_type); int shm_close_socket(shm_socket_t * socket) ; + +int shm_socket_stop(shm_socket_t *sockt); int shm_socket_bind(shm_socket_t * socket, int key) ; @@ -67,12 +71,16 @@ const struct timespec * timeout = NULL, int flags = 0); /** - * @callback void (*recv_callback_fn)(void **sendbuf, int *sendsize) - * sendbuf 鍜� sendsize鏄痗allbak_fn鍥炶皟鍑芥暟鐨勮繑鍥炲��, 鍒嗗埆琛ㄧず鍙戦�佹暟鎹紝鍜屽彂閫佹暟鎹殑澶у皬銆� + * @callback void (*recvandsend_callback_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data) + * @recvbuf 鏀跺埌鐨勬暟鎹� + * @recvsize 鏀跺埌鐨勬暟鎹殑澶у皬 + * @key 鎺ュ彈鏁版嵁骞跺苟鍙戦�佹暟鎹殑瀵硅薄 + * @sendbuf 瀛樺偍杩斿洖鍊肩殑鍦板潃锛岃〃绀鸿繑鍥炵殑鏁版嵁 + * @sendsize 瀛樺偍杩斿洖鍊肩殑鍦板潃锛� 杩斿洖鏁版嵁鐨勯暱搴� * */ -int shm_recvandsend(shm_socket_t *sockt, void **recvbuf, int *recvsize, int *key, recv_callback_fn callback, - const struct timespec *timeout = NULL, int flag = 0); +int shm_recvandsend(shm_socket_t *sockt, recvandsend_callback_fn callback, + const struct timespec *timeout = NULL, int flag = 0, void * user_data = NULL); -- Gitblit v1.8.0