From 6e0dc69afa4c7171f9e31a50ad20d561189f7346 Mon Sep 17 00:00:00 2001
From: fujuntang <fujuntang@smartai.com>
Date: 星期二, 31 八月 2021 17:44:55 +0800
Subject: [PATCH] Merge branch 'master' of http://os.smartai.com:9091/valib/c_bhomebus
---
src/net/net_mod_socket_wrapper.h | 115 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 93 insertions(+), 22 deletions(-)
diff --git a/src/net/net_mod_socket_wrapper.h b/src/net/net_mod_socket_wrapper.h
index 171a3a8..b869510 100644
--- a/src/net/net_mod_socket_wrapper.h
+++ b/src/net/net_mod_socket_wrapper.h
@@ -12,12 +12,14 @@
#define __NET_MOD_SOCKET_H__
#include "net_mod_socket.h"
+#include "proc_def.h"
#ifdef __cplusplus
extern "C" {
#endif
+typedef void (*recvandsend_callback_wrapper_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data);
@@ -28,12 +30,16 @@
*/
void * net_mod_socket_open();
+
/**
* @brief 鍏抽棴 net_mod_socket
*/
void net_mod_socket_close(void *_sockt);
-
+/**
+ * @brief 鍋滄 net_mod_socket
+ */
+int net_mod_socket_stop(void *_sockt);
/**
* @brief 缁戝畾绔彛鍒皊ocket, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓�
@@ -49,6 +55,8 @@
* @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜
*/
int net_mod_socket_force_bind(void * _socket, int key);
+
+int net_mod_socket_reg(void *_socket, void *pData, int len, void **buf, int *size, const int timeout_ms, int flag);
/**
* @brief 鍙戦�佷俊鎭�,鍙戦�佸畬鎴愭墠杩斿洖
@@ -95,6 +103,7 @@
* @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜
*/
int net_mod_socket_recvfrom(void *_socket, void **buf, int *size, int *key);
+
/**
* @brief 绛夊緟鎺ユ敹淇℃伅锛屽湪鎸囧畾鐨勬椂闂村唴鍗充娇娌℃湁鎺ュ彈鍒版秷鎭篃瑕佽繑鍥�
*
@@ -119,6 +128,9 @@
*/
int net_mod_socket_recvfrom_nowait(void *_socket, void **buf, int *size, int *key);
+
+
+
/**
* @brief 璺ㄦ満鍣ㄥ彂閫佹秷鎭苟鎺ュ彈杩斿洖鐨勫簲绛旀秷鎭紝鐩村埌鍙戦�佸畬鎴愭墠杩斿洖
*
@@ -127,14 +139,17 @@
* @param node_arr_len璇ユ暟缁勯暱搴�.濡傛灉IP涓虹┖鍒欎负鏈湴鍙戦�併��
* @param send_buf 鍙戦�佺殑娑堟伅
* @param send_size 璇ユ秷鎭綋鐨勯暱搴�
- * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁�
+ * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁勶紝浣跨敤瀹屽悗闇�瑕佽皟鐢╪et_mod_socket_free_recv_msg_arr閲婃斁鎺�
* @param recv_arr_size 杩斿洖鐨勫簲绛旀秷鎭暟缁勯暱搴�
+ * @param err_arr 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍锛屼娇鐢ㄥ畬鍚庨渶瑕佽皟鐢╢ree鏂规硶閲婃斁鎺�
+ 脳 @param err_arr_size 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍鐨勯暱搴�
*
* @return 鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁�
*
*/
-extern int net_mod_socket_sendandrecv(void *_sockt, net_node_t *node_arr, int arrlen, void *send_buf, int send_size,
- net_mod_recv_msg_t ** recv_arr, int *recv_arr_size) ;
+int net_mod_socket_sendandrecv(void *_sockt, net_node_t *node_arr, int arrlen, void *send_buf, int send_size,
+ net_mod_recv_msg_t ** recv_arr, int *recv_arr_size,
+ net_mod_err_t ** err_arr, int *err_arr_size) ;
/**
@@ -145,15 +160,18 @@
* @param node_arr_len璇ユ暟缁勯暱搴�.濡傛灉IP涓虹┖鍒欎负鏈湴鍙戦�併��
* @param send_buf 鍙戦�佺殑娑堟伅
* @param send_size 璇ユ秷鎭綋鐨勯暱搴�
- * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁�
+ * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁勶紝浣跨敤瀹屽悗闇�瑕佽皟鐢╪et_mod_socket_free_recv_msg_arr閲婃斁鎺�
* @param recv_arr_size 杩斿洖鐨勫簲绛旀秷鎭暟缁勯暱搴�
+ * @param err_arr 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍锛屼娇鐢ㄥ畬鍚庨渶瑕佽皟鐢╢ree鏂规硶閲婃斁鎺�
+ 脳 @param err_arr_size 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍鐨勯暱搴�
* @param timeout 绛夊緟鏃堕棿(璞锛屽嵆鍗冨垎涔嬩竴绉�)
*
* @return 鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁�
*
*/
int net_mod_socket_sendandrecv_timeout(void *_sockt, net_node_t *node_arr, int arrlen, void *send_buf, int send_size,
- net_mod_recv_msg_t ** recv_arr, int *recv_arr_size, int timeout);
+ net_mod_recv_msg_t ** recv_arr, int *recv_arr_size,
+ net_mod_err_t ** err_arr, int *err_arr_size, int timeout);
/**
@@ -164,29 +182,82 @@
* @param node_arr_len璇ユ暟缁勯暱搴�.濡傛灉IP涓虹┖鍒欎负鏈湴鍙戦�併��
* @param send_buf 鍙戦�佺殑娑堟伅
* @param send_size 璇ユ秷鎭綋鐨勯暱搴�
- * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁�
+ * @param recv_arr 杩斿洖鐨勫簲绛旀秷鎭暟缁勶紝浣跨敤瀹屽悗闇�瑕佽皟鐢╪et_mod_socket_free_recv_msg_arr閲婃斁鎺�
* @param recv_arr_size 杩斿洖鐨勫簲绛旀秷鎭暟缁勯暱搴�
+ * @param err_arr 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍锛屼娇鐢ㄥ畬鍚庨渶瑕佽皟鐢╢ree鏂规硶閲婃斁鎺�
+ 脳 @param err_arr_size 杩斿洖鍙戦�侀敊璇殑鑺傜偣鏁扮粍鐨勯暱搴�
*
* @return 鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁�
*
*/
int net_mod_socket_sendandrecv_nowait(void *_sockt, net_node_t *node_arr, int arrlen, void *send_buf, int send_size,
- net_mod_recv_msg_t ** recv_arr, int *recv_arr_size) ;
+ net_mod_recv_msg_t ** recv_arr, int *recv_arr_size,
+ net_mod_err_t ** err_arr, int *err_arr_size) ;
- /**
- * @brief 鍚憂ode_arr涓殑鎵�鏈夌綉缁滆妭鐐瑰彂甯冩秷鎭�
- *
- * @param node_arr 缃戠粶鑺傜偣缁�, @node_arr_len璇ユ暟缁勯暱搴�
- * @param topic 涓婚锛�
- * @param topic_size 璇ヤ富棰樼殑闀垮害
- * @param content 鍐呭锛�
- * @param content_size 鍐呭闀垮害
- *
- * @return 鎴愬姛鍙戝竷鐨勮妭鐐圭殑涓暟
- */
-int net_mod_socket_pub(void *_sockt, net_node_t *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size);
+
+/**
+ * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屼竴鐩寸瓑寰呭畬鎴�
+ *
+ * @callback void (*recvandsend_callback_wrapper_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data)
+ * @recvbuf 鏀跺埌鐨勬暟鎹�, 璇ecvbuf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀�
+ * @recvsize 鏀跺埌鐨勬暟鎹殑澶у皬
+ * @key 鎺ュ彈鏁版嵁骞跺彂閫佹暟鎹殑瀵硅薄
+ * @sendbuf 瀛樺偍杩斿洖鍊肩殑鍦板潃锛岃〃绀鸿繑鍥炵殑鏁版嵁
+ * @sendsize 瀛樺偍杩斿洖鍊肩殑鍦板潃锛� 杩斿洖鏁版嵁鐨勯暱搴�
+ *
+ * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜
+ */
+int net_mod_socket_recvandsend(void *_socket, recvandsend_callback_wrapper_fn callback, void * user_data);
+
+/**
+ * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屽湪鎸囧畾鐨勬椂闂村唴鍗充娇娌℃湁瀹屾垚涔熻繑鍥�
+ *
+ * @callback void (*recvandsend_callback_wrapper_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data)
+ * @recvbuf 鏀跺埌鐨勬暟鎹�, 璇ecvbuf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀�
+ * @recvsize 鏀跺埌鐨勬暟鎹殑澶у皬
+ * @key 鎺ュ彈鏁版嵁骞跺彂閫佹暟鎹殑瀵硅薄
+ * @sendbuf 瀛樺偍杩斿洖鍊肩殑鍦板潃锛岃〃绀鸿繑鍥炵殑鏁版嵁
+ * @sendsize 瀛樺偍杩斿洖鍊肩殑鍦板潃锛� 杩斿洖鏁版嵁鐨勯暱搴�
+ *
+ * @param sec 绉�
+ * @param nsec 绾崇
+ *
+ * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜
+ */
+int net_mod_socket_recvandsend_timeout(void *_socket, recvandsend_callback_wrapper_fn callback,
+ int sec, int nsec, void * user_data ) ;
+
+
+/**
+ * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屾棤璁烘垚鍔熶笌鍚︾珛鍒昏繑鍥�
+ *
+ * @callback void (*recvandsend_callback_wrapper_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data)
+ * @recvbuf 鏀跺埌鐨勬暟鎹�, 璇ecvbuf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀�
+ * @recvsize 鏀跺埌鐨勬暟鎹殑澶у皬
+ * @key 鎺ュ彈鏁版嵁骞跺彂閫佹暟鎹殑瀵硅薄
+ * @sendbuf 瀛樺偍杩斿洖鍊肩殑鍦板潃锛岃〃绀鸿繑鍥炵殑鏁版嵁
+ * @sendsize 瀛樺偍杩斿洖鍊肩殑鍦板潃锛� 杩斿洖鏁版嵁鐨勯暱搴�
+ *
+ * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜
+ */
+int net_mod_socket_recvandsend_nowait(void *_socket, recvandsend_callback_wrapper_fn callback, void * user_data) ;
+
+
+
+ /**
+ * @brief 鍚憂ode_arr涓殑鎵�鏈夌綉缁滆妭鐐瑰彂甯冩秷鎭�
+ *
+ * @param node_arr 缃戠粶鑺傜偣缁�, @node_arr_len璇ユ暟缁勯暱搴�
+ * @param topic 涓婚锛�
+ * @param topic_size 璇ヤ富棰樼殑闀垮害
+ * @param content 鍐呭锛�
+ * @param content_size 鍐呭闀垮害
+ *
+ * @return 鎴愬姛鍙戝竷鐨勮妭鐐圭殑涓暟
+ */
+int net_mod_socket_pub(void *_sockt, net_node_t *node_arr, int node_arr_len, const char *topic, int topic_size, const void *content, int content_size);
/**
@@ -201,7 +272,7 @@
*
* @return 鎴愬姛鍙戝竷鐨勮妭鐐圭殑涓暟
*/
-int net_mod_socket_pub_timeout(void *_sockt, net_node_t *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size, int msec);
+int net_mod_socket_pub_timeout(void *_sockt, net_node_t *node_arr, int node_arr_len, const char *topic, int topic_size, const void *content, int content_size, int msec);
/**
@@ -215,7 +286,7 @@
*
* @return 鎴愬姛鍙戝竷鐨勮妭鐐圭殑涓暟
*/
-int net_mod_socket_pub_nowait(void *_sockt, net_node_t *node_arr, int node_arr_len, char *topic, int topic_size, void *content, int content_size);
+int net_mod_socket_pub_nowait(void *_sockt, net_node_t *node_arr, int node_arr_len, const char *topic, int topic_size, const void *content, int content_size);
/**
* @brief 璁㈤槄鎰熷叴瓒d富棰樼殑娑堟伅
--
Gitblit v1.8.0