zzj 6 jaren geleden
bovenliggende
commit
b1ef7fed04
2 gewijzigde bestanden met toevoegingen van 14 en 24 verwijderingen
  1. 6 19
      card.cpp
  2. 8 5
      card.h

+ 6 - 19
card.cpp

@@ -1,11 +1,13 @@
 #include <memory>
 #include <ant.h>
 #include <log.h>
-#include <card.h>
 #include <zloop.h>
 #include <ev++.h>
 #include "select_tool.h"
 #include "loc_tool.h"
+
+#include <card.h>
+
 enum STA_TYPE
 {
     STATUS_HELP=0,
@@ -196,6 +198,7 @@ struct car:card_location_base
 };
 
 loc_tool_main one_ct_message_handle::m_loc_tool;
+
 struct card_list_impl:card_list
 {
 
@@ -237,21 +240,5 @@ struct card_list_impl:card_list
 	}
 };
 
-card_list *card_list::instance()
-{
-	if(card_list_impl::_impl!=nullptr)
-	{
-		return card_list_impl::_impl;
-	}
-
-	std::unique_lock<std::mutex> lock(_card_list_impl_mutex);
-
-	if(card_list_impl::_impl==nullptr)
-	{
-		card_list_impl::_impl=new card_list_impl();
-		card_list_impl::_impl->init_card_from_db();
-	}
-	return card_list_impl::_impl;
-}
-
-
+template<> std::shared_ptr<card_list> 
+single_base<card_list, int, std::shared_ptr<card_location_base>>::m_instance=std::make_shared<card_list_impl>();

+ 8 - 5
card.h

@@ -1,17 +1,20 @@
 #ifndef _CARD_HPP_
 #define _CARD_HPP_
 #include <message.h>
-#include <ev++.h>
+//#include <ev++.h>
+
+
+#include "write-copy.h"
+
+struct card_location_base;
+
 struct task;
 template<typename T> struct zloop;
 
-struct card_list
+struct card_list:single_base<card_list,int,std::shared_ptr<card_location_base>>
 {
 	virtual void on_message(zloop<task*> *loop,const message_locinfo&loc,bool is_history)=0;
 	virtual ~card_list(){}
-
-	//static card_list *instance(zloop<task*>&loop);
-	static card_list *instance();
 };
 
 #endif