From e4ce347428a0d459c7561f7bb3e180f351c11a4f Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期二, 14 七月 2020 10:38:18 +0800
Subject: [PATCH] update

---
 README.md |   63 +++++++++++--------------------
 1 files changed, 23 insertions(+), 40 deletions(-)

diff --git a/README.md b/README.md
index a174f32..97e5fce 100644
--- a/README.md
+++ b/README.md
@@ -14,16 +14,15 @@
 void test1() {
 	unsigned int i = 0;
 	int key = 2;
- 
+ 	// 
 	size_t qsize = 16;
-  	shmqueue_t queue;
-	shmqueue_init(&queue, key, qsize, sizeof(message_t));
+	void * queue = shmqueue_init( key, qsize, sizeof(message_t));
 	message_t item;
 	// LockFreeQueue<struct Item> queue(16);
 	for(i = 0; i < qsize; i++) {
 		sprintf(item.method, "hello"); 
 		item.code = i ; 
-		if(shmqueue_push(&queue, (void *)&item)) {
+		if(shmqueue_push(queue, (void *)&item)) {
 			  printf("push:%d %s\n", item.code, item.method );
 		}
 	}
@@ -31,20 +30,21 @@
 	struct timespec timeout = {1, 0};
 
 	i = 0;
-	while((shmqueue_pop_timeout(&queue, (void *)&item, &timeout)) ) {
+	while((shmqueue_pop_timeout(queue, (void *)&item, &timeout)) ) {
 	    printf("pop:%d %s\n", item.code, item.method );
 	   // cout <<  item.pic << endl;
 	    i++;
 	}
 
-	shmqueue_destroy(&queue);
+	//閿�姣侀槦鍒�
+	shmqueue_destroy(queue);
 }
 
  
 int main () {
 	test1();
 
-	//鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄩ攢姣佹暣鍧楀唴瀛樸��
+	//鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
 	mm_destroy();
 	return 0;
 }
@@ -54,79 +54,62 @@
 
 ```
 
+
 /**
  * 鍒濆鍖�
  * @ shmqueue 
  * @ key 鏍囪瘑鍏变韩闃熷垪鐨勫敮涓�key
- * @ queue_size 闃熷垪澶у皬
- * @ ele_size 闃熷垪涓厓绱犲ぇ灏�
+ * @ queue_size 闃熷垪澶у皬 , 杩欎釜鍊煎繀椤绘槸2鐨勬寚鏁板嵆 1, 2, 4, 8, 16 绛�
+ * @ ele_size 闃熷垪涓厓绱犲ぇ灏�, 杩欎釜鍊间笉鑳借秴杩�512锛屽綋鐒跺鏋滈渶瑕佸彲浠ヨ皟鏁磋繖涓渶澶ч檺鍒�
  */
-inline void shmqueue_init(shmqueue_t *shmqueue, int key, int queue_size, int ele_size) {
-	if(ele_size > MAX_ELE_SIZE) {
-		err_exit(0, "shmqueue_init 鍏冪礌澶у皬瓒呰繃璁捐鐨勬渶澶уぇ灏�");
-	}
-	SHMQueue<ele_t> *queue = new SHMQueue<ele_t>(key, queue_size);
-	shmqueue->mqueue = (void *)queue;
-	shmqueue->ele_size = ele_size;
-}
-
-
-
+void* shmqueue_init(int key, int queue_size, int ele_size);
 /**
  * 閿�姣�
 */
-inline void shmqueue_destroy(shmqueue_t *shmqueue) {
-	delete (SHMQueue<ele_t> *)shmqueue->mqueue;
-}
-
+void shmqueue_destroy(void *shmqueue);
 /**
  * 闃熷垪鍏冪礌鐨勪釜鏁�
  */
-inline uint32_t shmqueue_size(shmqueue_t *shmqueue) {
-	return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->size();
-}
-
+uint32_t shmqueue_size(void *shmqueue);
 /**
  * 鏄惁宸叉弧
  */
-inline int shmqueue_full(shmqueue_t *shmqueue) {
-	return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->full();
-}
+int shmqueue_full(void *shmqueue);
 
 /**
  * 鏄惁涓虹┖
  */
-inline int shmqueue_empty(shmqueue_t *shmqueue) {
-	return ((SHMQueue<ele_t> *)(shmqueue->mqueue))->empty();
-}
+int shmqueue_empty(void *shmqueue);
 
 /**
  * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟
  */
-inline int shmqueue_push(shmqueue_t *shmqueue, void *src_ele) 
+int shmqueue_push(void *shmqueue, void *src_ele);
 
 /**
  * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖
  */
-inline int shmqueue_push_nowait(shmqueue_t *shmqueue, void *src_ele) 
+int shmqueue_push_nowait(void *shmqueue, void *src_ele);
 
 /**
  * 鍏ラ槦, 鎸囧畾鏃堕棿鍐呭叆闃熶笉鎴愬姛灏辫繑鍥�
  */
-inline int shmqueue_push_timeout(shmqueue_t *shmqueue, void *src_ele, struct timespec * timeout) 
+int shmqueue_push_timeout(void *shmqueue, void *src_ele, struct timespec * timeout);
+
 /**
  * 鍑洪槦, 闃熷垪绌烘椂绛夊緟
  */
-inline int shmqueue_pop(shmqueue_t *shmqueue, void *dest_ele)  
+int shmqueue_pop(void *shmqueue, void *dest_ele);
 
 /**
  * 鍑洪槦, 闃熷垪绌烘椂绔嬪嵆杩斿洖
  */
-inline int shmqueue_pop_nowait(shmqueue_t *shmqueue, void *dest_ele) 
+int shmqueue_pop_nowait(void *shmqueue, void *dest_ele);
+
 /**
  * 鍑洪槦, 鎸囧畾鏃堕棿鍐呭嚭闃熶笉鎴愬姛灏辫繑鍥�
  */
-inline int shmqueue_pop_timeout(shmqueue_t *shmqueue, void *dest_ele, struct timespec * timeout)
+int shmqueue_pop_timeout(void *shmqueue, void *dest_ele, struct timespec * timeout);
 
 ```
 

--
Gitblit v1.8.0