zzj 6 лет назад
Родитель
Сommit
1f5383595a
3 измененных файлов с 31 добавлено и 5 удалено
  1. 6 1
      Makefile.am
  2. 16 2
      card.cpp
  3. 9 2
      main.cpp

+ 6 - 1
Makefile.am

@@ -1,5 +1,5 @@
 bin_PROGRAMS=yals 
-noinst_PROGRAMS=client async test
+noinst_PROGRAMS=client async test visit
 
 AM_SOURCES=ant.cpp ant.h card.cpp card.h clock.h \
 crc.cpp crc.h io_buf.h line.h loc_tool.cpp loc_tool.h message.cpp \
@@ -25,6 +25,11 @@ test_SOURCES=test.cpp base64.cpp
 test_CPPFLAGS=${AM_CPPFLAGS}
 test_LDFLAGS=${AM_LDFLAGS}  -L. -lzlog -lrt
 
+visit_SOURCES=visit.cpp 
+visit_CPPFLAGS=${AM_CPPFLAGS} -D_TEST_
+visit_LDFLAGS=${AM_LDFLAGS}  
+
+
 DEFS= 
 EXTRA_DIST=message_file.h 
 

+ 16 - 2
card.cpp

@@ -166,6 +166,7 @@ struct card:card_location_base
 loc_tool_main one_ct_message_handle::m_loc_tool;
 struct card_list_impl:card_list
 {
+	static card_list_impl*_impl;
 	std::vector<card*> m_list;
 	card_list_impl()
 	{
@@ -200,9 +201,22 @@ struct card_list_impl:card_list
 	}
 };
 
+card_list_impl *card_list_impl::_impl=nullptr;
+std::mutex _card_list_impl_mutex;
 card_list *card_list::instance()
 {
-	static card_list_impl _impl;
-	return &_impl;
+	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;
 }
 

+ 9 - 2
main.cpp

@@ -2,14 +2,21 @@
 #include <log.h>
 #include <net-service.h>
 
+#include <config_file.h>
+
+config_file config;
+
 int main()
 {
 	log_init("../etc/log.ini");
+	if(config.open("../etc/config.ini"))
+		return -1;
+
+	int port=config.get("service.port",4000);
 
 	net_service mh;
-	service_handle::instance(&mh)->run(4000);
+	service_handle::instance(&mh)->run(port);
 
 	return 0;
 }
 
-