From 68d23225a38a35f1325eb39fa4ed5a005d5de473 Mon Sep 17 00:00:00 2001 From: fujuntang <fujuntang@aiot.com> Date: 星期三, 11 八月 2021 09:50:20 +0800 Subject: [PATCH] fix from 3.1 first commit --- src/net/net_mod_socket_wrapper.h | 91 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 75 insertions(+), 16 deletions(-) diff --git a/src/net/net_mod_socket_wrapper.h b/src/net/net_mod_socket_wrapper.h index 171a3a8..e823cc8 100644 --- a/src/net/net_mod_socket_wrapper.h +++ b/src/net/net_mod_socket_wrapper.h @@ -18,6 +18,7 @@ #endif +typedef void (*recvandsend_callback_wrapper_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data); @@ -28,12 +29,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, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓� @@ -95,6 +100,7 @@ * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ int net_mod_socket_recvfrom(void *_socket, void **buf, int *size, int *key); + /** * @brief 绛夊緟鎺ユ敹淇℃伅锛屽湪鎸囧畾鐨勬椂闂村唴鍗充娇娌℃湁鎺ュ彈鍒版秷鎭篃瑕佽繑鍥� * @@ -119,6 +125,9 @@ */ int net_mod_socket_recvfrom_nowait(void *_socket, void **buf, int *size, int *key); + + + /** * @brief 璺ㄦ満鍣ㄥ彂閫佹秷鎭苟鎺ュ彈杩斿洖鐨勫簲绛旀秷鎭紝鐩村埌鍙戦�佸畬鎴愭墠杩斿洖 * @@ -133,7 +142,7 @@ * @return 鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁� * */ -extern int net_mod_socket_sendandrecv(void *_sockt, net_node_t *node_arr, int arrlen, void *send_buf, int send_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) ; @@ -156,6 +165,56 @@ net_mod_recv_msg_t ** recv_arr, int *recv_arr_size, int timeout); + + +/** + * @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 璺ㄦ満鍣ㄥ彂閫佹秷鎭苟鎺ュ彈杩斿洖鐨勫簲绛旀秷鎭紝涓嶇鏄惁鍙戦�佸畬鎴愮珛鍒昏繑鍥� * @@ -175,18 +234,18 @@ - /** - * @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 鍚憂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 +260,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 +274,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