From 082633f08aae8eea19bd7050cbe4a75e5ed1ac6f Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期二, 07 七月 2020 12:07:29 +0800
Subject: [PATCH] update

---
 squeue/include/queue_factory.h |   34 ++++++++++------------------------
 1 files changed, 10 insertions(+), 24 deletions(-)

diff --git a/squeue/include/queue_factory.h b/squeue/include/queue_factory.h
index b898a86..23446b0 100644
--- a/squeue/include/queue_factory.h
+++ b/squeue/include/queue_factory.h
@@ -4,10 +4,11 @@
 #include "mm.h"
 #include "hashtable.h"
 #include "lock_free_queue.h"
-#include "SLinkedLockFreeQueue.h"
 
-namespace QueueFactory{
-	hashtable_t * getHashTable() {
+class QueueFactory{
+private:
+
+	static hashtable_t * getHashTable() {
 		static hashtable_t *hashtable = NULL;
 		int first;
 		  
@@ -20,24 +21,9 @@
 		
 	}
 
-	template <typename T>
-	SLinkedLockFreeQueue<T>* createLinkedLockFreeQueue(int key, size_t size) {
-		
+	 
 
-		SLinkedLockFreeQueue<T> *queue;
-		hashtable_t *hashtable = getHashTable();
-		
-		
-		if ((queue = (SLinkedLockFreeQueue<T> *)hashtable_get(hashtable, key)) == NULL ) {
-			queue = new SLinkedLockFreeQueue<T>(size);
-			hashtable_put(hashtable,  key, (void *)queue);
-		}
-
-		return queue;
-	}
-
-
-	template <typename T>
+	template <typename T> static
 	LockFreeQueue<T>* createArrayLockFreeQueue(int key, size_t size=16) {
 		 
 		LockFreeQueue<T> *queue;
@@ -51,8 +37,9 @@
 		return queue;
 	}
 
+public:
 
-	template <typename T>
+	template <typename T> static
 	LockFreeQueue<T>* createQueue(int key, size_t size = 16) {
 		return QueueFactory::createArrayLockFreeQueue<T>(key, size);
 	}
@@ -60,14 +47,13 @@
 	/**
 	 * destroy queue
 	*/
-	template <typename T>
+	template <typename T> static
 	void dropQueue(int key) {
-
 		LockFreeQueue<T> *queue = QueueFactory::createQueue<T> (key);
 		delete queue;
 		hashtable_t *hashtable = getHashTable();
 		hashtable_remove(hashtable, key);
 	}
 
-}
+};
 #endif

--
Gitblit v1.8.0