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 |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 113 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 891e42f..97e5fce 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,115 @@
-## cppShmqueue
+## 瀹炰緥
 
-Cpp鐗堟湰鐨勫叡浜唴瀛橀槦鍒楀簱
+```
+#include "shm_queue_wrapper.h"
+#include "mm.h"
+
+typedef struct message_t
+{
+	char method[20];
+	int code;
+	
+} message_t;
+
+void test1() {
+	unsigned int i = 0;
+	int key = 2;
+ 	// 
+	size_t qsize = 16;
+	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)) {
+			  printf("push:%d %s\n", item.code, item.method );
+		}
+	}
+	 
+	struct timespec timeout = {1, 0};
+
+	i = 0;
+	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);
+}
+
+ 
+int main () {
+	test1();
+
+	//鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
+	mm_destroy();
+	return 0;
+}
+```
+
+## 鎺ュ彛璇存槑
+
+```
+
+
+/**
+ * 鍒濆鍖�
+ * @ shmqueue 
+ * @ key 鏍囪瘑鍏变韩闃熷垪鐨勫敮涓�key
+ * @ queue_size 闃熷垪澶у皬 , 杩欎釜鍊煎繀椤绘槸2鐨勬寚鏁板嵆 1, 2, 4, 8, 16 绛�
+ * @ ele_size 闃熷垪涓厓绱犲ぇ灏�, 杩欎釜鍊间笉鑳借秴杩�512锛屽綋鐒跺鏋滈渶瑕佸彲浠ヨ皟鏁磋繖涓渶澶ч檺鍒�
+ */
+void* shmqueue_init(int key, int queue_size, int ele_size);
+/**
+ * 閿�姣�
+*/
+void shmqueue_destroy(void *shmqueue);
+/**
+ * 闃熷垪鍏冪礌鐨勪釜鏁�
+ */
+uint32_t shmqueue_size(void *shmqueue);
+/**
+ * 鏄惁宸叉弧
+ */
+int shmqueue_full(void *shmqueue);
+
+/**
+ * 鏄惁涓虹┖
+ */
+int shmqueue_empty(void *shmqueue);
+
+/**
+ * 鍏ラ槦, 闃熷垪婊℃椂绛夊緟
+ */
+int shmqueue_push(void *shmqueue, void *src_ele);
+
+/**
+ * 鍏ラ槦, 闃熷垪婊℃椂绔嬪嵆杩斿洖
+ */
+int shmqueue_push_nowait(void *shmqueue, void *src_ele);
+
+/**
+ * 鍏ラ槦, 鎸囧畾鏃堕棿鍐呭叆闃熶笉鎴愬姛灏辫繑鍥�
+ */
+int shmqueue_push_timeout(void *shmqueue, void *src_ele, struct timespec * timeout);
+
+/**
+ * 鍑洪槦, 闃熷垪绌烘椂绛夊緟
+ */
+int shmqueue_pop(void *shmqueue, void *dest_ele);
+
+/**
+ * 鍑洪槦, 闃熷垪绌烘椂绔嬪嵆杩斿洖
+ */
+int shmqueue_pop_nowait(void *shmqueue, void *dest_ele);
+
+/**
+ * 鍑洪槦, 鎸囧畾鏃堕棿鍐呭嚭闃熶笉鎴愬姛灏辫繑鍥�
+ */
+int shmqueue_pop_timeout(void *shmqueue, void *dest_ele, struct timespec * timeout);
+
+```
 

--
Gitblit v1.8.0