From 8b89e81b09adbb06f6e5e64aa115a1eef6e75b57 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 30 十一月 2020 11:10:15 +0800 Subject: [PATCH] update --- src/socket/dgram_mod_socket.c | 120 ++++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 76 insertions(+), 44 deletions(-) diff --git a/src/socket/dgram_mod_socket.c b/src/socket/dgram_mod_socket.c index e733ff6..cd560b2 100644 --- a/src/socket/dgram_mod_socket.c +++ b/src/socket/dgram_mod_socket.c @@ -1,11 +1,20 @@ #include "dgram_mod_socket.h" -#include "dmod_socket.h" +#include "shm_mod_socket.h" typedef struct dgram_mod_socket_t { - DModSocket *m_socket; + ShmModSocket *m_socket; } dgram_mod_socket_t; + +int dgram_mod_remove_keys(int keys[], int length){ + return ShmModSocket::remove_keys(keys, length); +} + +int dgram_mod_remove_key(int key){ + int keys[] = {key}; + return ShmModSocket::remove_keys(keys, 1); +} /** * 鍒涘缓socket * @return socket鍦板潃 @@ -13,7 +22,7 @@ void *dgram_mod_open_socket() { dgram_mod_socket_t * socket = (dgram_mod_socket_t *)calloc(1, sizeof(dgram_mod_socket_t)); // socket->mod = (socket_mod_t)mod; - socket->m_socket = new DModSocket; + socket->m_socket = new ShmModSocket; return (void *)socket; } @@ -32,81 +41,81 @@ * 缁戝畾绔彛鍒皊ocket, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓� * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -int dgram_mod_bind(void * _socket, int port) { +int dgram_mod_bind(void * _socket, int key) { dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->bind(port); + return socket->m_socket->bind(key); } /** * 寮哄埗缁戝畾绔彛鍒皊ocket, 閫傜敤浜庣▼搴忛潪姝e父鍏抽棴鐨勬儏鍐典笅锛岄噸鍚▼搴忕粦瀹氬師鏉ヨ繕娌¢噴鏀剧殑key * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -int dgram_mod_force_bind(void * _socket, int port) { +int dgram_mod_force_bind(void * _socket, int key) { dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->force_bind(port); + return socket->m_socket->force_bind(key); } /** * 鍙戦�佷俊鎭� - * @port 鍙戦�佺粰璋� + * @key 鍙戦�佺粰璋� * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -int dgram_mod_sendto(void *_socket, const void *buf, const int size, const int port){ +int dgram_mod_sendto(void *_socket, const void *buf, const int size, const int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sendto(buf, size,port); + return socket->m_socket->sendto(buf, size,key); } // 鍙戦�佷俊鎭秴鏃惰繑鍥炪�� @sec 绉� 锛� @nsec 绾崇 -int dgram_mod_sendto_timeout(void *_socket, const void *buf, const int size, const int port, int sec, int nsec){ +int dgram_mod_sendto_timeout(void *_socket, const void *buf, const int size, const int key, int sec, int nsec){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; struct timespec timeout = {sec, nsec}; - return socket->m_socket->sendto_timeout(buf, size, port, &timeout); + return socket->m_socket->sendto_timeout(buf, size, key, &timeout); } // 鍙戦�佷俊鎭珛鍒昏繑鍥炪�� -int dgram_mod_sendto_nowait(void *_socket, const void *buf, const int size, const int port){ +int dgram_mod_sendto_nowait(void *_socket, const void *buf, const int size, const int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sendto_nowait(buf, size,port); + return socket->m_socket->sendto_nowait(buf, size,key); } /** * 鎺ユ敹淇℃伅 - * @port 浠庤皝鍝噷鏀跺埌鐨勪俊鎭� + * @key 浠庤皝鍝噷鏀跺埌鐨勪俊鎭� * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -int dgram_mod_recvfrom(void *_socket, void **buf, int *size, int *port) { +int dgram_mod_recvfrom(void *_socket, void **buf, int *size, int *key) { dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->recvfrom(buf, size, port); + return socket->m_socket->recvfrom(buf, size, key); } // 鎺ュ彈淇℃伅瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -int dgram_mod_recvfrom_timeout(void *_socket, void **buf, int *size, int *port, int sec, int nsec){ +int dgram_mod_recvfrom_timeout(void *_socket, void **buf, int *size, int *key, int sec, int nsec){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; struct timespec timeout = {sec, nsec}; - return socket->m_socket->recvfrom_timeout(buf, size, port, &timeout); + return socket->m_socket->recvfrom_timeout(buf, size, key, &timeout); } -int dgram_mod_recvfrom_nowait(void *_socket, void **buf, int *size, int *port){ +int dgram_mod_recvfrom_nowait(void *_socket, void **buf, int *size, int *key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->recvfrom_nowait(buf, size, port); + return socket->m_socket->recvfrom_nowait(buf, size, key); } /** * 鍙戦�佽姹備俊鎭苟绛夊緟鎺ユ敹搴旂瓟 - * @port 鍙戦�佺粰璋� + * @key 鍙戦�佺粰璋� * @return 0 鎴愬姛锛� 鍏朵粬鍊� 澶辫触鐨勯敊璇爜 */ -int dgram_mod_sendandrecv(void * _socket, const void *send_buf, const int send_size, const int port, void **recv_buf, int *recv_size){ +int dgram_mod_sendandrecv(void * _socket, const void *send_buf, const int send_size, const int key, void **recv_buf, int *recv_size){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sendandrecv(send_buf, send_size, port, recv_buf, recv_size); + return socket->m_socket->sendandrecv(send_buf, send_size, key, recv_buf, recv_size); } // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -int dgram_mod_sendandrecv_timeout(void * _socket, const void *send_buf, const int send_size, const int port, void **recv_buf, int *recv_size, int sec, int nsec){ +int dgram_mod_sendandrecv_timeout(void * _socket, const void *send_buf, const int send_size, const int key, void **recv_buf, int *recv_size, int sec, int nsec){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; struct timespec timeout = {sec, nsec}; - return socket->m_socket->sendandrecv_timeout(send_buf, send_size, port, recv_buf, recv_size, &timeout); + return socket->m_socket->sendandrecv_timeout(send_buf, send_size, key, recv_buf, recv_size, &timeout); } -int dgram_mod_sendandrecv_nowait(void * _socket, const void *send_buf, const int send_size, const int port, void **recv_buf, int *recv_size) { +int dgram_mod_sendandrecv_nowait(void * _socket, const void *send_buf, const int send_size, const int key, void **recv_buf, int *recv_size) { dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sendandrecv_nowait(send_buf, send_size, port, recv_buf, recv_size); + return socket->m_socket->sendandrecv_nowait(send_buf, send_size, key, recv_buf, recv_size); } @@ -124,21 +133,44 @@ * 璁㈤槄鎸囧畾涓婚 * @topic 涓婚 * @size 涓婚闀垮害 - * @port 鎬荤嚎绔彛 + * @key 鎬荤嚎绔彛 */ -int dgram_mod_sub(void * _socket, void *topic, int size, int port){ +int dgram_mod_sub(void * _socket, void *topic, int size, int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sub(topic, size, port); + return socket->m_socket->sub((char *)topic, size, key); } // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -int dgram_mod_sub_timeout(void * _socket, void *topic, int size, int port, int sec, int nsec){ +int dgram_mod_sub_timeout(void * _socket, void *topic, int size, int key, int sec, int nsec){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; struct timespec timeout = {sec, nsec}; - return socket->m_socket->sub_timeout(topic, size, port, &timeout); + return socket->m_socket->sub_timeout((char *)topic, size, key, &timeout); } -int dgram_mod_sub_nowait(void * _socket, void *topic, int size, int port){ +int dgram_mod_sub_nowait(void * _socket, void *topic, int size, int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->sub_nowait(topic, size, port); + return socket->m_socket->sub_nowait((char *)topic, size, key); +} + + + +/** + * 鍙栨秷璁㈤槄鎸囧畾涓婚 + * @topic 涓婚 + * @size 涓婚闀垮害 + * @key 鎬荤嚎绔彛 + */ +int dgram_mod_desub(void * _socket, void *topic, int size, int key){ + dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; + return socket->m_socket->desub((char *)topic, size, key); +} +// 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 +int dgram_mod_desub_timeout(void * _socket, void *topic, int size, int key, int sec, int nsec){ + dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; + struct timespec timeout = {sec, nsec}; + return socket->m_socket->desub_timeout((char *)topic, size, key, &timeout); +} +int dgram_mod_desub_nowait(void * _socket, void *topic, int size, int key){ + dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; + return socket->m_socket->desub_nowait((char *)topic, size, key); } @@ -147,30 +179,30 @@ * 鍙戝竷涓婚 * @topic 涓婚 * @content 涓婚鍐呭 - * @port 鎬荤嚎绔彛 + * @key 鎬荤嚎绔彛 */ -int dgram_mod_pub(void * _socket, void *topic, int topic_size, void *content, int content_size, int port){ +int dgram_mod_pub(void * _socket, void *topic, int topic_size, void *content, int content_size, int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->pub(topic, topic_size, content, content_size, port); + return socket->m_socket->pub((char *)topic, topic_size, content, content_size, key); } // 瓒呮椂杩斿洖銆� @sec 绉� 锛� @nsec 绾崇 -int dgram_mod_pub_timeout(void * _socket, void *topic, int topic_size, void *content, int content_size, int port, int sec, int nsec){ +int dgram_mod_pub_timeout(void * _socket, void *topic, int topic_size, void *content, int content_size, int key, int sec, int nsec){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; struct timespec timeout = {sec, nsec}; - return socket->m_socket->pub_timeout(topic, topic_size, content, content_size, port, &timeout); + return socket->m_socket->pub_timeout((char *)topic, topic_size, content, content_size, key, &timeout); } -int dgram_mod_pub_nowait(void * _socket, void *topic, int topic_size, void *content, int content_size, int port){ +int dgram_mod_pub_nowait(void * _socket, void *topic, int topic_size, void *content, int content_size, int key){ dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->pub_nowait(topic, topic_size, content, content_size, port); + return socket->m_socket->pub_nowait((char *)topic, topic_size, content, content_size, key); } /** - * 鑾峰彇soket绔彛鍙� + * 鑾峰彇soket key */ int dgram_mod_get_port(void * _socket) { dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket; - return socket->m_socket->get_port(); + return socket->m_socket->get_key(); } -- Gitblit v1.8.0