From 4892aa7927086988e96918293272693a65d049b7 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 16 七月 2020 18:31:03 +0800 Subject: [PATCH] update --- queue/include/socket.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 48 insertions(+), 9 deletions(-) diff --git a/queue/include/socket.h b/queue/include/socket.h index b19a7b4..f51c021 100644 --- a/queue/include/socket.h +++ b/queue/include/socket.h @@ -1,7 +1,14 @@ -#ifndef __BASIC_SHM_SOCKET_H__ -#define __BASIC_SHM_SOCKET_H__ +#ifndef __SHM_SOCKET_H__ +#define __SHM_SOCKET_H__ #include "usg_common.h" +#include "usg_typedef.h" +#include "shm_queue.h" +#include "shm_allocator.h" + +#include "mem_pool.h" +#include "hashtable.h" +#include "sem_util.h" #ifdef __cplusplus extern "C" { #endif @@ -16,6 +23,36 @@ BUS = 6 }; + + +enum shm_msg_type_t +{ + SHM_SOCKET_OPEN = 1, + SHM_SOCKET_CLOSE = 2, + SHM_COMMON_MSG = 3 + +}; + +typedef struct shm_msg_t { + int port; + shm_msg_type_t type; + size_t size; + void * buf; + +} shm_msg_t; + + +typedef struct shm_socket_t { + // 鏈湴port + int port; + SHMQueue<shm_msg_t> *queue; + SHMQueue<shm_msg_t> *remoteQueue; + LockFreeQueue<shm_msg_t, DM_Allocator> *messageQueue; + LockFreeQueue<shm_msg_t, DM_Allocator> *acceptQueue; + std::map<int, shm_socket_t* > *clientSocketMap; + pthread_t dispatch_thread; + +} shm_socket_t; /** @@ -36,21 +73,23 @@ */ void shm_free(void *buf); -void *shm_open_socket(int mod); +shm_socket_t *shm_open_socket(); -int shm_close_socket(void *socket) ; +int shm_close_socket(shm_socket_t * socket) ; -int shm_bind(void* socket, int port) ; +int shm_bind(shm_socket_t * socket, int port) ; -int shm_listen(void* socket) ; +int shm_listen(shm_socket_t * socket) ; -int shm_connect(void* socket, int port); +shm_socket_t* shm_accept(shm_socket_t* socket); -int shm_send(void *socket, void *buf, int size) ; +int shm_connect(shm_socket_t * socket, int port); -int shm_recv(void* socket, void **buf, int *size) ; +int shm_send(shm_socket_t * socket, void *buf, int size) ; + +int shm_recv(shm_socket_t * socket, void **buf, int *size) ; -- Gitblit v1.8.0