wangzhengquan
2020-07-16 4892aa7927086988e96918293272693a65d049b7
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) ;