From 2561a007b8d8999a4750046d0cfb3b1ad5af50ac Mon Sep 17 00:00:00 2001 From: zhangmeng <775834166@qq.com> Date: 星期二, 09 四月 2024 15:29:32 +0800 Subject: [PATCH] test for perf --- src/net/net_mod_socket_wrapper.h | 155 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 91 insertions(+), 64 deletions(-) diff --git a/src/net/net_mod_socket_wrapper.h b/src/net/net_mod_socket_wrapper.h index 2f73c7b..c693b2f 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, 濡傛灉涓嶇粦瀹氬垯绯荤粺鑷姩鍒嗛厤涓�涓� @@ -50,6 +56,8 @@ */ 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 鍙戦�佷俊鎭�,鍙戦�佸畬鎴愭墠杩斿洖 * @@ -59,7 +67,7 @@ * * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_sendto(void *_socket, const void *buf, const int size, const int key); +int net_mod_socket_sendto(void *_socket, const void *buf, const int size, const int key, int reset = 0, int data_set = 0); /** * @brief 鍙戦�佷俊鎭紝鍦ㄦ寚瀹氭椂闂村唴娌″彂閫佸畬鎴愪篃杩斿洖銆� @@ -72,7 +80,7 @@ * * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_sendto_timeout(void *_socket, const void *buf, const int size, const int key, int sec, int nsec); +int net_mod_socket_sendto_timeout(void *_socket, const void *buf, const int size, const int key, int sec, int nsec, int reset = 0, int data_set = 0); /** * @brief 鍙戦�佷俊鎭紝鏃犺鏄惁鍙戦�佸畬鎴愮珛鍒昏繑鍥炪�� @@ -83,7 +91,7 @@ * * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_sendto_nowait(void *_socket, const void *buf, const int size, const int key); +int net_mod_socket_sendto_nowait(void *_socket, const void *buf, const int size, const int key, int reset = 0, int data_set = 0); /** * @brief 绛夊緟鎺ユ敹淇℃伅锛岀洿鍒版湁娑堟伅鎺ュ彈鍒版墠杩斿洖 @@ -94,7 +102,7 @@ * * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_recvfrom(void *_socket, void **buf, int *size, int *key); +int net_mod_socket_recvfrom(void *_socket, void **buf, int *size, int *key, int reset = 0, int data_set = 0); /** * @brief 绛夊緟鎺ユ敹淇℃伅锛屽湪鎸囧畾鐨勬椂闂村唴鍗充娇娌℃湁鎺ュ彈鍒版秷鎭篃瑕佽繑鍥� @@ -107,7 +115,7 @@ * * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_recvfrom_timeout(void *_socket, void **buf, int *size, int *key, int sec, int nsec); +int net_mod_socket_recvfrom_timeout(void *_socket, void **buf, int *size, int *key, int sec, int nsec, int reset = 0, int data_set = 0); /** * @brief 绛夊緟鎺ユ敹淇℃伅锛岀洿鍒版湁娑堟伅鎺ュ彈鍒版墠杩斿洖 @@ -118,55 +126,15 @@ * * @return 0鏄垚鍔燂紝鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 */ -int net_mod_socket_recvfrom_nowait(void *_socket, void **buf, int *size, int *key); +int net_mod_socket_recvfrom_nowait(void *_socket, void **buf, int *size, int *key, int reset = 0, int data_set = 0); - - -/** - * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屼竴鐩寸瓑寰呭畬鎴� - * - * @param recvbuf 鎺ュ彈鍒扮殑娑堟伅瀛樻斁鐨勭紦瀛樺湴鍧�锛岃buf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀� - * @param recvsize 鎺ュ彈鍒版秷鎭殑闀垮害 - * @param key 浠庤皝鍝噷鏀跺埌鐨勪俊鎭� - * @callback void (*recv_callback_fn)(void **sendbuf, int *sendsize) - * sendbuf 鍜� sendsize鏄痗allbak_fn鍥炶皟鍑芥暟鐨勮繑鍥炲��, 鍒嗗埆琛ㄧず杩斿洖鐨勬暟鎹紝鍜岃繑鍥炴暟鎹殑闀垮害銆� - * - * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 - */ -int net_mod_socket_recvandsend(void *_socket, void **recvbuf, int *recvsize, int *key, recv_callback_fn callback); - -/** - * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屽湪鎸囧畾鐨勬椂闂村唴鍗充娇娌℃湁瀹屾垚涔熻繑鍥� - * - * @param recvbuf 鎺ュ彈鍒扮殑娑堟伅瀛樻斁鐨勭紦瀛樺湴鍧�锛岃buf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀� - * @param recvsize 鎺ュ彈鍒版秷鎭殑闀垮害 - * @param key 浠庤皝鍝噷鏀跺埌鐨勪俊鎭� - * @callback void (*recv_callback_fn)(void **sendbuf, int *sendsize) - * sendbuf 鍜� sendsize鏄痗allbak_fn鍥炶皟鍑芥暟鐨勮繑鍥炲��, 鍒嗗埆琛ㄧず杩斿洖鐨勬暟鎹紝鍜岃繑鍥炴暟鎹殑闀垮害銆� - * - * @param sec 绉� - * @param nsec 绾崇 - * - * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 - */ -int net_mod_socket_recvandsend_timeout(void *_socket, void **recvbuf, int *recvsize, int *key, recv_callback_fn callback, - int sec, int nsec ) ; - - -/** - * @brief 鎺ュ彈娑堟伅锛屽苟鎶奵allback鍑芥暟杩斿洖鐨勬暟鎹彂閫佸洖瀵规柟锛屾棤璁烘垚鍔熶笌鍚︾珛鍒昏繑鍥� - * - * @param recvbuf 鎺ュ彈鍒扮殑娑堟伅瀛樻斁鐨勭紦瀛樺湴鍧�锛岃buf浣跨敤瀹屾垚鍚庨渶瑕佹墜鍔ㄩ噴鏀� - * @param recvsize 鎺ュ彈鍒版秷鎭殑闀垮害 - * @param key 浠庤皝鍝噷鏀跺埌鐨勪俊鎭� - * @callback void (*recv_callback_fn)(void **sendbuf, int *sendsize) - * sendbuf 鍜� sendsize鏄痗allbak_fn鍥炶皟鍑芥暟鐨勮繑鍥炲��, 鍒嗗埆琛ㄧず杩斿洖鐨勬暟鎹紝鍜岃繑鍥炴暟鎹殑闀垮害銆� - * - * @return 0鏄垚鍔燂紝 鍏朵粬鍊兼槸澶辫触鐨勯敊璇爜 - */ -int net_mod_socket_recvandsend_nowait(void *_socket, void **recvbuf, int *recvsize, int *key, recv_callback_fn callback) ; - - +void net_mod_socket_int_set(void * _socket, int data); +void net_mod_socket_svr_set(void * _socket, int data); +int net_mod_socket_int_get(void * _socket); +int net_mod_socket_svr_get(void * _socket); +void net_mod_socket_buf_data_set(void * _socket, std::string str, int val); +int net_mod_socket_buf_data_get(void * _socket, std::string str); +void net_mod_socket_buf_data_del(void * _socket, std::string str); /** * @brief 璺ㄦ満鍣ㄥ彂閫佹秷鎭苟鎺ュ彈杩斿洖鐨勫簲绛旀秷鎭紝鐩村埌鍙戦�佸畬鎴愭墠杩斿洖 @@ -176,14 +144,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 鎴愬姛鍙戦�佺殑鑺傜偣鐨勪釜鏁� * */ 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_recv_msg_t ** recv_arr, int *recv_arr_size, + net_mod_err_t ** err_arr, int *err_arr_size) ; /** @@ -194,15 +165,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); /** @@ -213,14 +187,67 @@ * @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 鎺ュ彈娑堟伅锛屽苟鎶奵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) ; @@ -235,7 +262,7 @@ * * @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); +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); /** @@ -250,7 +277,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); /** @@ -264,7 +291,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富棰樼殑娑堟伅 @@ -377,4 +404,4 @@ } #endif -#endif \ No newline at end of file +#endif -- Gitblit v1.8.0