wangzhengquan
2020-07-20 f85c9b875b060681b51f57b15074ba1c7c9f5636
queue/include/shm_socket.h
@@ -23,6 +23,12 @@
   
};
enum shm_connection_status_t {
   SHM_CONN_CLOSED=1,
   SHM_CONN_LISTEN=2,
   SHM_CONN_ESTABLISHED=3
};
typedef struct shm_msg_t {
   int port;
   shm_msg_type_t type;
@@ -35,6 +41,7 @@
typedef struct shm_socket_t {
   // 本地port
   int port;
   shm_connection_status_t status;
   SHMQueue<shm_msg_t> *queue;
   SHMQueue<shm_msg_t> *remoteQueue;
   LockFreeQueue<shm_msg_t, DM_Allocator> *messageQueue;
@@ -45,23 +52,7 @@
} shm_socket_t;
/**
 * 初始化共享内存
 * @size 共享内存大小, 单位M
 *
 */
void shm_init(int size);
/**
 * 销毁共享内存
 * 整个进程退出时需要执行这个方法,该方法首先会检查是否还有其他进程在使用该共享内存,如果还有其他进程在使用就只是detach,如果没有其他进程在使用则销毁整块内存。
 */
void shm_destroy();
/**
 * 释放recv方法分配的buf
 */
void shm_free(void *buf);
shm_socket_t *shm_open_socket();
@@ -69,7 +60,7 @@
int shm_close_socket(shm_socket_t * socket) ;
int shm_bind(shm_socket_t * socket, int port) ;
int shm_socket_bind(shm_socket_t * socket, int port) ;
int shm_listen(shm_socket_t * socket) ;
@@ -77,7 +68,7 @@
int shm_connect(shm_socket_t * socket, int port);
int shm_send(shm_socket_t * socket, void *buf, int size) ;
int shm_send(shm_socket_t * socket, const void *buf, const int size) ;
int shm_recv(shm_socket_t * socket, void **buf, int *size) ;