#include "usg_common.h"
|
#include "dgram_mod_socket.h"
|
#include "shm_socket.h"
|
#include "shm_allocator.h"
|
#include "mem_pool.h"
|
#include "hashtable.h"
|
#include "sem_util.h"
|
#include "logger_factory.h"
|
|
typedef struct dgram_mod_socket_t {
|
socket_mod_t mod;
|
shm_socket_t *shm_socket;
|
// pthread_t recv_thread;
|
// std::map<int, LockFreeQueue<shm_msg_t, DM_Allocator> * > *recv_queue_map;
|
} dgram_mod_socket_t;
|
|
|
void *dgram_mod_open_socket(int mod) {
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *)calloc(1, sizeof(dgram_mod_socket_t));
|
socket->mod = (socket_mod_t)mod;
|
// socket->recv_thread = 0;
|
// socket->recv_queue_map = NULL;
|
socket->shm_socket = shm_open_socket(SHM_SOCKET_DGRAM);
|
return (void *)socket;
|
}
|
|
|
int dgram_mod_close_socket(void * _socket) {
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
|
shm_close_socket(socket->shm_socket);
|
free(_socket);
|
}
|
|
|
int dgram_mod_bind(void * _socket, int port){
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
|
return shm_socket_bind(socket->shm_socket, port);
|
}
|
|
int dgram_mod_sendto(void *_socket, const void *buf, const int size, const int port) {
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
|
return shm_sendto(socket->shm_socket, buf, size, port);
|
|
}
|
|
int dgram_mod_recvfrom(void *_socket, void **buf, int *size, int *port) {
|
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
|
return shm_recvfrom(socket->shm_socket, buf, size, port);
|
}
|
|
|
|
int dgram_mod_sendandrecv(void * _socket, const void *send_buf, const int send_size, const int send_port, void **recv_buf, int *recv_size) {
|
dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
|
return shm_sendandrecv(socket->shm_socket, send_buf, send_size, send_port, recv_buf, recv_size);
|
|
}
|