From f85c9b875b060681b51f57b15074ba1c7c9f5636 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 20 七月 2020 11:10:02 +0800 Subject: [PATCH] update --- queue/include/shm_queue_wrapper.h | 58 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 34 insertions(+), 24 deletions(-) diff --git a/queue/include/shm_queue_wrapper.h b/queue/include/shm_queue_wrapper.h index cdfb2e2..33ed54f 100644 --- a/queue/include/shm_queue_wrapper.h +++ b/queue/include/shm_queue_wrapper.h @@ -9,19 +9,11 @@ #ifdef __cplusplus extern "C" { #endif -/** - * 鍒濆鍖栧叡浜唴瀛� - * @size 鍏变韩鍐呭瓨澶у皬 - * - */ -void shm_init(int size); -/** - * 閿�姣佸叡浜唴瀛� - * 鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸�� - */ -void shm_destroy(); + +//绉婚櫎涓嶅寘鍚湪keys涓殑闃熷垪 +void shm_remove_queues_exclue(void *keys, int length); /** * 鍒涘缓闃熷垪 * @ shmqueue @@ -31,58 +23,76 @@ void* shmqueue_create( int * key, int queue_size); /** - * 缁戝畾key鍒伴槦鍒楋紝浣嗘槸骞朵笉浼氬垱寤洪槦鍒椼�傚鏋滄病鏈夊搴旀寚瀹歬ey鐨勯槦鍒楁彁绀洪敊璇苟杩斿洖绌哄�� + * 缁戝畾key鍒伴槦鍒楋紝浣嗘槸骞朵笉浼氬垱寤洪槦鍒椼�傚鏋滄病鏈夊搴旀寚瀹歬ey鐨勯槦鍒楁彁绀洪敊璇苟閫�鍑� */ -void* shmqueue_attach(int key); +void* shmqueue_attach(int key) ; + /** * 閿�姣� */ -void shmqueue_drop(void * _shmqueue) ; +void shmqueue_drop(void * _shmqueue); /** * 闃熷垪鍏冪礌鐨勪釜鏁� */ -int shmqueue_size(void * _shmqueue); +int shmqueue_size(void * _shmqueue) ; + /** * 鏄惁宸叉弧 + * @return 1鏄紝 0鍚� */ int shmqueue_full(void * _shmqueue); /** * 鏄惁涓虹┖ + * @return 1鏄紝 0鍚� */ int shmqueue_empty(void * _shmqueue) ; /** - * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟 + * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟. + * @return 1 鍏ラ槦鎴愬姛, 0 鍏ラ槦澶辫触 */ -int shmqueue_push(void * _shmqueue, void *src_ele, int ele_size); +int shmqueue_push(void * _shmqueue, void *src, int size); /** - * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖 + * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖. + * @return 1 鍏ラ槦鎴愬姛, 0 鍏ラ槦澶辫触 */ -int shmqueue_push_nowait(void * _shmqueue, void *src_ele, int ele_size) ; +int shmqueue_push_nowait(void * _shmqueue, void *src, int size) ; /** * 鍏ラ槦, 鎸囧畾鏃堕棿鍐呭叆闃熶笉鎴愬姛灏辫繑鍥� - * timespec {sec绉�, nsec绾崇} + * @sec 绉� + * @nsec 绾崇 + * @return 1 鍏ラ槦鎴愬姛, 0 鍏ラ槦澶辫触 */ -int shmqueue_push_timeout(void * _shmqueue, void *src_ele, int ele_size, void * _timeout); +int shmqueue_push_timeout(void * _shmqueue, void *src, int size, int sec, int nsec) ; /** * 鍑洪槦, 闃熷垪绌烘椂绛夊緟 + * @return 1 鍑洪槦鎴愬姛锛� 0鍑洪槦澶辫触 */ -int shmqueue_pop(void * _shmqueue, void *dest_ele); +int shmqueue_pop(void * _shmqueue, void **dest, int *size); /** * 鍑洪槦, 闃熷垪绌烘椂绔嬪嵆杩斿洖 + * @return 1 鍑洪槦鎴愬姛锛� 0鍑洪槦澶辫触 */ -int shmqueue_pop_nowait(void * _shmqueue, void *dest_ele) ; +int shmqueue_pop_nowait(void * _shmqueue, void **dest, int *size) ; /** * 鍑洪槦, 鎸囧畾鏃堕棿鍐呭嚭闃熶笉鎴愬姛灏辫繑鍥� + * @sec绉� + * @nsec绾崇 + * @return 1 鍑洪槦鎴愬姛锛� 0鍑洪槦澶辫触 */ -int shmqueue_pop_timeout(void * _shmqueue, void *dest_ele, void * _timeout); +int shmqueue_pop_timeout(void * _shmqueue, void **dest, int *size, int sec, int nsec); + +/** + * 閲婃斁鍑洪槦鍒嗛厤鐨勫唴瀛� + */ +void shmqueue_free(void *ptr); #ifdef __cplusplus } -- Gitblit v1.8.0