Browse Source

Merge branch 'master' of http://local.beijingyongan.com:3000/linux-dev/ya-serv

chensongchao 6 years ago
parent
commit
2171c2289d
43 changed files with 904 additions and 8007 deletions
  1. 1 0
      .gitignore
  2. 6 1
      area.cpp
  3. 3 0
      area.h
  4. 12 0
      area_business.cpp
  5. 5 0
      card_base.h
  6. 4 4
      card_person.cpp
  7. 18 14
      card_person.h
  8. 17 0
      common_tool.h
  9. 0 697
      db/Makefile
  10. 2 2
      db/Makefile.am
  11. 0 697
      db/Makefile.in
  12. 0 5126
      db/autom4te.cache/output.0
  13. 0 79
      db/autom4te.cache/requests
  14. 0 373
      db/autom4te.cache/traces.0
  15. 10 7
      db/db_api/CDBCommon.h
  16. 87 72
      db/db_api/CDBConnPool.cpp
  17. 133 118
      db/db_api/CDBConnPool.h
  18. 20 0
      db/db_api/CDBConnect.cpp
  19. 155 135
      db/db_api/CDBConnect.h
  20. 5 51
      db/db_tool.cpp
  21. 2 2
      db/db_tool.h
  22. BIN
      db/libyadb.a
  23. 43 29
      module_service/area_business_car_attendance.cpp
  24. 2 2
      module_service/area_business_car_attendance.h
  25. 5 13
      module_service/area_business_card_enter_or_leave.cpp
  26. 2 2
      module_service/area_business_card_enter_or_leave.h
  27. 58 14
      module_service/area_business_geofault.cpp
  28. 7 21
      module_service/area_business_geofault.h
  29. 63 17
      module_service/area_business_motionless_persion.cpp
  30. 14 21
      module_service/area_business_motionless_persion.h
  31. 115 76
      module_service/area_business_person_attendance.cpp
  32. 4 4
      module_service/area_business_person_attendance.h
  33. 23 12
      module_service/area_business_speed_checker.cpp
  34. 6 6
      module_service/area_business_work_rate.cpp
  35. 1 1
      module_service/area_business_work_rate.h
  36. 1 1
      module_service/module_call.h
  37. 37 38
      module_service/module_meta_date_changed.cpp
  38. 3 2
      module_service/module_meta_date_changed.h
  39. 1 0
      module_service/module_mgr.cpp
  40. 1 1
      module_service/module_mgr.h
  41. 32 3
      module_service/module_web.cpp
  42. 6 28
      module_service/module_web.h
  43. 0 338
      ya_event.h

+ 1 - 0
.gitignore

@@ -23,5 +23,6 @@ CMakeFiles/
 .idea/
 .git/
 .vscode/
+Makefile
 
 

+ 6 - 1
area.cpp

@@ -267,7 +267,7 @@ void area_list::init_from_db(int id/*=-1*/)
 {
     std::string sql = "SELECT a.area_id, a.name, a.map_id, a.area_type_id, a.path,b.scale, \
             over_count_person, over_count_vehicle, over_time_person, over_time_vehicle, \
-            over_speed_vehicle, is_attendance,business_type \
+            over_speed_vehicle, is_attendance,business_type, a.is_work_area\
             FROM dat_area a,dat_map b\
             where a.map_id = b.map_id and  area_id not in \
 			  (select monkeycar_base_info_id from dat_monkeycar_base_info)";
@@ -331,6 +331,9 @@ void area_list::init_from_db(int id/*=-1*/)
 		uint32_t b_type =0;
         DBRes.GetField( "business_type",b_type, Error );
 
+        int is_work_area = 0;
+        DBRes.GetField( "is_work_area",is_work_area, Error );
+
         log_info("init_area : id:%d,path:%s",area_id, path.c_str());
 
         if(-1 == id)
@@ -339,6 +342,7 @@ void area_list::init_from_db(int id/*=-1*/)
             ap->m_limit_vehicle_second = over_time_vehicle;
             ap->m_limit_vehicle_count = over_count_vehicle;
             ap->m_over_speed_vehicle = over_speed_vehicle;
+            ap->m_is_work_area = is_work_area;
 
             ap->m_bound=init_path(path);
             for(const auto &p : ap->m_bound)
@@ -361,6 +365,7 @@ void area_list::init_from_db(int id/*=-1*/)
             tmp_ptr->update(over_count_person, over_time_person,scale,map_id,area_type_id, over_count_vehicle,over_time_vehicle);
             tmp_ptr->m_bound=init_path(path);
             tmp_ptr->m_over_speed_vehicle = over_speed_vehicle;
+            tmp_ptr->m_is_work_area = is_work_area;
             for(const auto &p : tmp_ptr->m_bound)
                 log_info("point:area_id:%d--x:%.2f,y:%.2f",area_id,p.x,p.y);
 

+ 3 - 0
area.h

@@ -96,6 +96,9 @@ public:
 
     //区域速度门限
     double m_over_speed_vehicle;
+
+    //是否是工作区域(0:不是、1:是)
+    int m_is_work_area=0;
 };
 
 struct area_list:single_base<area_list,int,std::shared_ptr<area>>

+ 12 - 0
area_business.cpp

@@ -9,6 +9,11 @@
 #include "area_business_person_attendance.h"
 #include "area_business_post_area.h"
 #include "area_business_speed_checker.h"
+#include"area_business_motionless_persion.h"
+#include"area_business_geofault.h"
+#include"area_business_work_rate.h"
+
+
 
 struct area_business_factory
 {
@@ -33,7 +38,10 @@ struct area_business_factory
 				break;
 
 			if((business_type&1)==0)
+            {
+                business_type >>= 1;
 				continue;
+            }
 
 			business_type >>= 1;
 
@@ -61,6 +69,10 @@ private:
 		regist(7,new area_business_forbid);
 		//regist(8,new area_business_monkey_area);
 		regist(9,new area_business_card_enter_or_leave);
+
+        regist(10, new area_business_motionless_persion);
+        regist(11, new area_business_geofault);
+        regist(12, new area_business_work_rate);
 	}
 
 };

+ 5 - 0
card_base.h

@@ -96,6 +96,11 @@ struct card_location_base:card,std::enable_shared_from_this<card_location_base>
         return -1;
     }
 
+    virtual int get_workline()
+    {
+        return -1;
+    }
+
     void on_message(zloop<task*> * loop,const message_locinfo&loc,bool is_history);
     void on_location(const std::vector<point>&vp,const std::vector<loc_message> &lm );
     void do_status(int st);

+ 4 - 4
card_person.cpp

@@ -113,10 +113,10 @@ void person::handle_three_rates(const point & pt)
 	cp.work_line=m_workLine;
 	m_biz_stat=get_stat();
 	cp.biz_stat = m_biz_stat;
-	cp.x=pt.x;cp.y=pt.y;cp.z=pt.z;	
-	//const auto lm = m_area_tool->getLandmark();
-	//cp.enter_time = std::get<0>(lm)*1000;
-	//cp.area_id = std::get<3>(lm);
+	cp.x=pt.x;cp.y=pt.y;cp.z=pt.z;
+	const auto lm = m_area_tool->getLandmark();
+//	cp.enter_time = std::get<0>(lm)*1000;
+//	cp.area_id = std::get<3>(lm);
 	put_three_rates(cp);
 }
 

+ 18 - 14
card_person.h

@@ -6,32 +6,36 @@
 
 struct person:card_location_base, card_area
 {
-	std::weak_ptr<monkey_person> m_monkeyPerson;
-	int m_workLine=0;
-	time_t m_iris_recognition_timeval = 0;
-	std::string m_stafferName,m_deptName;
-	person(const std::string &type,uint32_t cardid,uint16_t needdisplay,int16_t t,int32_t deptid,int32_t level_id,uint32_t cid,int wl,const std::string &sname,const std::string &dname);
-	~person();
+    std::weak_ptr<monkey_person> m_monkeyPerson;
+    int m_workLine=0;
+    time_t m_iris_recognition_timeval = 0;
+    std::string m_stafferName,m_deptName;
+    person(const std::string &type,uint32_t cardid,uint16_t needdisplay,int16_t t,int32_t deptid,int32_t level_id,uint32_t cid,int wl,const std::string &sname,const std::string &dname);
+    ~person();
 
 
     void clear();
-	void reset(std::shared_ptr<monkey_person> mp);
-	void handle_three_rates(const point & pt);
-	void on_timer();
-	void IKSDK_DB(int);
-	point getSmoothPoint(uint64_t& t);
+    void reset(std::shared_ptr<monkey_person> mp);
+    void handle_three_rates(const point & pt);
+    void on_timer();
+    void IKSDK_DB(int);
+    point getSmoothPoint(uint64_t& t);
 
-	virtual void site_hover(int sid);
+    virtual void site_hover(int sid);
     virtual std::shared_ptr<area_hover> get_area_hover();
     virtual std::shared_ptr<mine_tool> get_mine_tool();
     virtual std::shared_ptr<site_area_hover> get_site_area();
-	virtual void do_business(const std::shared_ptr<site>&site,const point &pt,double acc);
+    virtual void do_business(const std::shared_ptr<site>&site,const point &pt,double acc);
     virtual std::tuple<time_t,time_t,int,int,int,int,double,double> getLandmark();
-	virtual int get_area();
+    virtual int get_area();
     virtual std::shared_ptr<area_tool> get_area_tool()
     {
         return m_area_tool;
     }
+    virtual int get_workline()
+    {
+        return m_workLine;
+    }
 };
 
 #endif

+ 17 - 0
common_tool.h

@@ -103,6 +103,23 @@ public:
 	{
 		return type_id_to_u64(card_id_to_type(cardid),card_id_to_id(cardid));
 	}
+
+    ///采煤机
+    static bool is_coal(int32_t type)
+    {
+        return CT_COAL_CUTTER == type;
+    }
+
+    /// 掘进机
+    static bool is_driving(int32_t type)
+    {
+        return CT_HEADING_MACHINE == type;
+    }
+
+    static bool is_coal_or_driving(int32_t type)
+    {
+        return CT_COAL_CUTTER == type || CT_HEADING_MACHINE == type;
+    }
 };
 
 class tool_map

+ 0 - 697
db/Makefile

@@ -1,697 +0,0 @@
-# Makefile.in generated by automake 1.12.3 from Makefile.am.
-# Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-
-am__make_dryrun = \
-  { \
-    am__dry=no; \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
-    esac; \
-    test $$am__dry = yes; \
-  }
-pkgdatadir = $(datadir)/libyadb-a
-pkgincludedir = $(includedir)/libyadb-a
-pkglibdir = $(libdir)/libyadb-a
-pkglibexecdir = $(libexecdir)/libyadb-a
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-subdir = .
-DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/../depcomp \
-	$(top_srcdir)/../install-sh $(top_srcdir)/../missing \
-	$(top_srcdir)/configure COPYING INSTALL
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libyadb_a_AR = $(AR) $(ARFLAGS)
-libyadb_a_LIBADD =
-am_libyadb_a_OBJECTS = db_card.$(OBJEXT) CDBResultSet.$(OBJEXT) \
-	CDBConnect.$(OBJEXT) CDBHelper.$(OBJEXT) CDBConnPool.$(OBJEXT) \
-	db_tool.$(OBJEXT) db_area.$(OBJEXT) db_history.$(OBJEXT)
-libyadb_a_OBJECTS = $(am_libyadb_a_OBJECTS)
-DEFAULT_INCLUDES = -I.
-depcomp = $(SHELL) $(top_srcdir)/../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-SOURCES = $(libyadb_a_SOURCES)
-DIST_SOURCES = $(libyadb_a_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-AM_RECURSIVE_TARGETS = cscope
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
-      || { sleep 5 && rm -rf "$(distdir)"; }; \
-  else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = ${SHELL} /home/lemon/resource/ya-serv/missing --run aclocal-1.12
-AMTAR = $${TAR-tar}
-AUTOCONF = ${SHELL} /home/lemon/resource/ya-serv/missing --run autoconf
-AUTOHEADER = ${SHELL} /home/lemon/resource/ya-serv/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/lemon/resource/ya-serv/missing --run automake-1.12
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPPFLAGS = 
-CXX = g++
-CXXDEPMODE = depmode=gcc3
-CXXFLAGS = -g
-CYGPATH_W = echo
-DEFS = 
-DEPDIR = .deps
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EXEEXT = 
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-LDFLAGS = 
-LIBOBJS = 
-LIBS = 
-LTLIBOBJS = 
-MAKEINFO = ${SHELL} /home/lemon/resource/ya-serv/missing --run makeinfo
-MKDIR_P = /bin/mkdir -p
-OBJEXT = o
-PACKAGE = libyadb-a
-PACKAGE_BUGREPORT = BUG-REPORT-ADDRESS
-PACKAGE_NAME = libyadb.a
-PACKAGE_STRING = libyadb.a 1.0
-PACKAGE_TARNAME = libyadb-a
-PACKAGE_URL = 
-PACKAGE_VERSION = 1.0
-PATH_SEPARATOR = :
-RANLIB = ranlib
-SET_MAKE = 
-SHELL = /bin/sh
-STRIP = 
-VERSION = 1.0
-abs_builddir = /home/lemon/resource/ya-serv/db
-abs_srcdir = /home/lemon/resource/ya-serv/db
-abs_top_builddir = /home/lemon/resource/ya-serv/db
-abs_top_srcdir = /home/lemon/resource/ya-serv/db
-ac_ct_CC = gcc
-ac_ct_CXX = g++
-am__include = include
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-bindir = ${exec_prefix}/bin
-build_alias = 
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host_alias = 
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = ${SHELL} /home/lemon/resource/ya-serv/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /home/lemon/resource/ya-serv/db/../..
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias = 
-top_build_prefix = 
-top_builddir = .
-top_srcdir = .
-AUTOMAKE_OPTIONS = foreign
-noinst_LIBRARIES = libyadb.a
-AM_CPPFLAGS = -Wall -pthread -m64 -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -I. -I..
-AM_LDFLAGS = -Wall -pthread -m64 -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib
-libyadb_a_SOURCES = db_card.cpp db_api/CDBResultSet.cpp db_api/CDBConnect.cpp \
-		db_api/CDBHelper.cpp db_api/CDBConnPool.cpp db_tool.cpp db_area.cpp db_history.cpp
-
-EXTRA_DIST = 
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-am--refresh: Makefile
-	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libyadb.a: $(libyadb_a_OBJECTS) $(libyadb_a_DEPENDENCIES) $(EXTRA_libyadb_a_DEPENDENCIES) 
-	-rm -f libyadb.a
-	$(libyadb_a_AR) libyadb.a $(libyadb_a_OBJECTS) $(libyadb_a_LIBADD)
-	$(RANLIB) libyadb.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-include ./$(DEPDIR)/CDBConnPool.Po
-include ./$(DEPDIR)/CDBConnect.Po
-include ./$(DEPDIR)/CDBHelper.Po
-include ./$(DEPDIR)/CDBResultSet.Po
-include ./$(DEPDIR)/db_area.Po
-include ./$(DEPDIR)/db_card.Po
-include ./$(DEPDIR)/db_history.Po
-include ./$(DEPDIR)/db_tool.Po
-
-.cpp.o:
-	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-CDBResultSet.o: db_api/CDBResultSet.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBResultSet.o -MD -MP -MF $(DEPDIR)/CDBResultSet.Tpo -c -o CDBResultSet.o `test -f 'db_api/CDBResultSet.cpp' || echo '$(srcdir)/'`db_api/CDBResultSet.cpp
-	$(am__mv) $(DEPDIR)/CDBResultSet.Tpo $(DEPDIR)/CDBResultSet.Po
-#	source='db_api/CDBResultSet.cpp' object='CDBResultSet.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBResultSet.o `test -f 'db_api/CDBResultSet.cpp' || echo '$(srcdir)/'`db_api/CDBResultSet.cpp
-
-CDBResultSet.obj: db_api/CDBResultSet.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBResultSet.obj -MD -MP -MF $(DEPDIR)/CDBResultSet.Tpo -c -o CDBResultSet.obj `if test -f 'db_api/CDBResultSet.cpp'; then $(CYGPATH_W) 'db_api/CDBResultSet.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBResultSet.cpp'; fi`
-	$(am__mv) $(DEPDIR)/CDBResultSet.Tpo $(DEPDIR)/CDBResultSet.Po
-#	source='db_api/CDBResultSet.cpp' object='CDBResultSet.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBResultSet.obj `if test -f 'db_api/CDBResultSet.cpp'; then $(CYGPATH_W) 'db_api/CDBResultSet.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBResultSet.cpp'; fi`
-
-CDBConnect.o: db_api/CDBConnect.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnect.o -MD -MP -MF $(DEPDIR)/CDBConnect.Tpo -c -o CDBConnect.o `test -f 'db_api/CDBConnect.cpp' || echo '$(srcdir)/'`db_api/CDBConnect.cpp
-	$(am__mv) $(DEPDIR)/CDBConnect.Tpo $(DEPDIR)/CDBConnect.Po
-#	source='db_api/CDBConnect.cpp' object='CDBConnect.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnect.o `test -f 'db_api/CDBConnect.cpp' || echo '$(srcdir)/'`db_api/CDBConnect.cpp
-
-CDBConnect.obj: db_api/CDBConnect.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnect.obj -MD -MP -MF $(DEPDIR)/CDBConnect.Tpo -c -o CDBConnect.obj `if test -f 'db_api/CDBConnect.cpp'; then $(CYGPATH_W) 'db_api/CDBConnect.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnect.cpp'; fi`
-	$(am__mv) $(DEPDIR)/CDBConnect.Tpo $(DEPDIR)/CDBConnect.Po
-#	source='db_api/CDBConnect.cpp' object='CDBConnect.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnect.obj `if test -f 'db_api/CDBConnect.cpp'; then $(CYGPATH_W) 'db_api/CDBConnect.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnect.cpp'; fi`
-
-CDBHelper.o: db_api/CDBHelper.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBHelper.o -MD -MP -MF $(DEPDIR)/CDBHelper.Tpo -c -o CDBHelper.o `test -f 'db_api/CDBHelper.cpp' || echo '$(srcdir)/'`db_api/CDBHelper.cpp
-	$(am__mv) $(DEPDIR)/CDBHelper.Tpo $(DEPDIR)/CDBHelper.Po
-#	source='db_api/CDBHelper.cpp' object='CDBHelper.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBHelper.o `test -f 'db_api/CDBHelper.cpp' || echo '$(srcdir)/'`db_api/CDBHelper.cpp
-
-CDBHelper.obj: db_api/CDBHelper.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBHelper.obj -MD -MP -MF $(DEPDIR)/CDBHelper.Tpo -c -o CDBHelper.obj `if test -f 'db_api/CDBHelper.cpp'; then $(CYGPATH_W) 'db_api/CDBHelper.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBHelper.cpp'; fi`
-	$(am__mv) $(DEPDIR)/CDBHelper.Tpo $(DEPDIR)/CDBHelper.Po
-#	source='db_api/CDBHelper.cpp' object='CDBHelper.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBHelper.obj `if test -f 'db_api/CDBHelper.cpp'; then $(CYGPATH_W) 'db_api/CDBHelper.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBHelper.cpp'; fi`
-
-CDBConnPool.o: db_api/CDBConnPool.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnPool.o -MD -MP -MF $(DEPDIR)/CDBConnPool.Tpo -c -o CDBConnPool.o `test -f 'db_api/CDBConnPool.cpp' || echo '$(srcdir)/'`db_api/CDBConnPool.cpp
-	$(am__mv) $(DEPDIR)/CDBConnPool.Tpo $(DEPDIR)/CDBConnPool.Po
-#	source='db_api/CDBConnPool.cpp' object='CDBConnPool.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnPool.o `test -f 'db_api/CDBConnPool.cpp' || echo '$(srcdir)/'`db_api/CDBConnPool.cpp
-
-CDBConnPool.obj: db_api/CDBConnPool.cpp
-	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnPool.obj -MD -MP -MF $(DEPDIR)/CDBConnPool.Tpo -c -o CDBConnPool.obj `if test -f 'db_api/CDBConnPool.cpp'; then $(CYGPATH_W) 'db_api/CDBConnPool.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnPool.cpp'; fi`
-	$(am__mv) $(DEPDIR)/CDBConnPool.Tpo $(DEPDIR)/CDBConnPool.Po
-#	source='db_api/CDBConnPool.cpp' object='CDBConnPool.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
-#	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnPool.obj `if test -f 'db_api/CDBConnPool.cpp'; then $(CYGPATH_W) 'db_api/CDBConnPool.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnPool.cpp'; fi`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-cscope: cscope.files
-	test ! -s cscope.files \
-	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-
-clean-cscope:
-	-rm -f cscope.files
-
-cscope.files: clean-cscope  cscopelist
-
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
-	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
-dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__post_remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__post_remove_distdir)
-
-dist-lzip: distdir
-	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__post_remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__post_remove_distdir)
-
-dist-tarZ: distdir
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__post_remove_distdir)
-
-dist-shar: distdir
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__post_remove_distdir)
-
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
-	$(am__post_remove_distdir)
-
-dist dist-all:
-	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
-	$(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lz*) \
-	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
-	chmod -R a-w $(distdir)
-	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
-	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
-	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
-	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-	        distuninstallcheck \
-	  && chmod -R a-w "$$dc_install_base" \
-	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
-	$(am__post_remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
-	@test -n '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: trying to run $@ with an empty' \
-	       '$$(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	$(am__cd) '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-	   || { echo "ERROR: files left after uninstall:" ; \
-	        if test -n "$(DESTDIR)"; then \
-	          echo "  (check DESTDIR support)"; \
-	        fi ; \
-	        $(distuninstallcheck_listfiles) ; \
-	        exit 1; } >&2
-distcleancheck: distclean
-	@if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left in build directory after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
-	clean-cscope clean-generic clean-noinstLIBRARIES cscope \
-	cscopelist ctags dist dist-all dist-bzip2 dist-gzip dist-lzip \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-compile distclean-generic distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

+ 2 - 2
db/Makefile.am

@@ -3,8 +3,8 @@ AUTOMAKE_OPTIONS=foreign
 noinst_LIBRARIES=libyadb.a
 
 
-CXXFLAGS=-g
-AM_CPPFLAGS=-Wall -pthread -m64 -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -I. -I..
+CXXFLAGS=-fPIC -g
+AM_CPPFLAGS=-Wall -pthread -m64 -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -I. -I.. -I../websocket/sio
 AM_LDFLAGS =-Wall -pthread -m64 -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib
 
 libyadb_a_SOURCES= db_card.cpp db_api/CDBResultSet.cpp db_api/CDBConnect.cpp \

+ 0 - 697
db/Makefile.in

@@ -1,697 +0,0 @@
-# Makefile.in generated by automake 1.12.3 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
-    esac; \
-    test $$am__dry = yes; \
-  }
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-subdir = .
-DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/../depcomp \
-	$(top_srcdir)/../install-sh $(top_srcdir)/../missing \
-	$(top_srcdir)/configure COPYING INSTALL
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(install_sh) -d
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AR = ar
-ARFLAGS = cru
-libyadb_a_AR = $(AR) $(ARFLAGS)
-libyadb_a_LIBADD =
-am_libyadb_a_OBJECTS = db_card.$(OBJEXT) CDBResultSet.$(OBJEXT) \
-	CDBConnect.$(OBJEXT) CDBHelper.$(OBJEXT) CDBConnPool.$(OBJEXT) \
-	db_tool.$(OBJEXT) db_area.$(OBJEXT) db_history.$(OBJEXT)
-libyadb_a_OBJECTS = $(am_libyadb_a_OBJECTS)
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-	-o $@
-SOURCES = $(libyadb_a_SOURCES)
-DIST_SOURCES = $(libyadb_a_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-AM_RECURSIVE_TARGETS = cscope
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-am__remove_distdir = \
-  if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
-      || { sleep 5 && rm -rf "$(distdir)"; }; \
-  else :; fi
-am__post_remove_distdir = $(am__remove_distdir)
-DIST_ARCHIVES = $(distdir).tar.gz
-GZIP_ENV = --best
-DIST_TARGETS = dist-gzip
-distuninstallcheck_listfiles = find . -type f -print
-am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
-  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = -g
-CYGPATH_W = @CYGPATH_W@
-DEFS = 
-DEPDIR = @DEPDIR@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EXEEXT = @EXEEXT@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build_alias = @build_alias@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host_alias = @host_alias@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-noinst_LIBRARIES = libyadb.a
-AM_CPPFLAGS = -Wall -pthread -m64 -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -I. -I..
-AM_LDFLAGS = -Wall -pthread -m64 -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib
-libyadb_a_SOURCES = db_card.cpp db_api/CDBResultSet.cpp db_api/CDBConnect.cpp \
-		db_api/CDBHelper.cpp db_api/CDBConnPool.cpp db_tool.cpp db_area.cpp db_history.cpp
-
-EXTRA_DIST = 
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .o .obj
-am--refresh: Makefile
-	@:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    echo ' $(SHELL) ./config.status'; \
-	    $(SHELL) ./config.status;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	$(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
-	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libyadb.a: $(libyadb_a_OBJECTS) $(libyadb_a_DEPENDENCIES) $(EXTRA_libyadb_a_DEPENDENCIES) 
-	-rm -f libyadb.a
-	$(libyadb_a_AR) libyadb.a $(libyadb_a_OBJECTS) $(libyadb_a_LIBADD)
-	$(RANLIB) libyadb.a
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CDBConnPool.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CDBConnect.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CDBHelper.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CDBResultSet.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db_area.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db_card.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db_history.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/db_tool.Po@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-CDBResultSet.o: db_api/CDBResultSet.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBResultSet.o -MD -MP -MF $(DEPDIR)/CDBResultSet.Tpo -c -o CDBResultSet.o `test -f 'db_api/CDBResultSet.cpp' || echo '$(srcdir)/'`db_api/CDBResultSet.cpp
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBResultSet.Tpo $(DEPDIR)/CDBResultSet.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBResultSet.cpp' object='CDBResultSet.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBResultSet.o `test -f 'db_api/CDBResultSet.cpp' || echo '$(srcdir)/'`db_api/CDBResultSet.cpp
-
-CDBResultSet.obj: db_api/CDBResultSet.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBResultSet.obj -MD -MP -MF $(DEPDIR)/CDBResultSet.Tpo -c -o CDBResultSet.obj `if test -f 'db_api/CDBResultSet.cpp'; then $(CYGPATH_W) 'db_api/CDBResultSet.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBResultSet.cpp'; fi`
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBResultSet.Tpo $(DEPDIR)/CDBResultSet.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBResultSet.cpp' object='CDBResultSet.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBResultSet.obj `if test -f 'db_api/CDBResultSet.cpp'; then $(CYGPATH_W) 'db_api/CDBResultSet.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBResultSet.cpp'; fi`
-
-CDBConnect.o: db_api/CDBConnect.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnect.o -MD -MP -MF $(DEPDIR)/CDBConnect.Tpo -c -o CDBConnect.o `test -f 'db_api/CDBConnect.cpp' || echo '$(srcdir)/'`db_api/CDBConnect.cpp
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBConnect.Tpo $(DEPDIR)/CDBConnect.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBConnect.cpp' object='CDBConnect.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnect.o `test -f 'db_api/CDBConnect.cpp' || echo '$(srcdir)/'`db_api/CDBConnect.cpp
-
-CDBConnect.obj: db_api/CDBConnect.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnect.obj -MD -MP -MF $(DEPDIR)/CDBConnect.Tpo -c -o CDBConnect.obj `if test -f 'db_api/CDBConnect.cpp'; then $(CYGPATH_W) 'db_api/CDBConnect.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnect.cpp'; fi`
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBConnect.Tpo $(DEPDIR)/CDBConnect.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBConnect.cpp' object='CDBConnect.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnect.obj `if test -f 'db_api/CDBConnect.cpp'; then $(CYGPATH_W) 'db_api/CDBConnect.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnect.cpp'; fi`
-
-CDBHelper.o: db_api/CDBHelper.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBHelper.o -MD -MP -MF $(DEPDIR)/CDBHelper.Tpo -c -o CDBHelper.o `test -f 'db_api/CDBHelper.cpp' || echo '$(srcdir)/'`db_api/CDBHelper.cpp
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBHelper.Tpo $(DEPDIR)/CDBHelper.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBHelper.cpp' object='CDBHelper.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBHelper.o `test -f 'db_api/CDBHelper.cpp' || echo '$(srcdir)/'`db_api/CDBHelper.cpp
-
-CDBHelper.obj: db_api/CDBHelper.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBHelper.obj -MD -MP -MF $(DEPDIR)/CDBHelper.Tpo -c -o CDBHelper.obj `if test -f 'db_api/CDBHelper.cpp'; then $(CYGPATH_W) 'db_api/CDBHelper.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBHelper.cpp'; fi`
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBHelper.Tpo $(DEPDIR)/CDBHelper.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBHelper.cpp' object='CDBHelper.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBHelper.obj `if test -f 'db_api/CDBHelper.cpp'; then $(CYGPATH_W) 'db_api/CDBHelper.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBHelper.cpp'; fi`
-
-CDBConnPool.o: db_api/CDBConnPool.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnPool.o -MD -MP -MF $(DEPDIR)/CDBConnPool.Tpo -c -o CDBConnPool.o `test -f 'db_api/CDBConnPool.cpp' || echo '$(srcdir)/'`db_api/CDBConnPool.cpp
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBConnPool.Tpo $(DEPDIR)/CDBConnPool.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBConnPool.cpp' object='CDBConnPool.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnPool.o `test -f 'db_api/CDBConnPool.cpp' || echo '$(srcdir)/'`db_api/CDBConnPool.cpp
-
-CDBConnPool.obj: db_api/CDBConnPool.cpp
-@am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CDBConnPool.obj -MD -MP -MF $(DEPDIR)/CDBConnPool.Tpo -c -o CDBConnPool.obj `if test -f 'db_api/CDBConnPool.cpp'; then $(CYGPATH_W) 'db_api/CDBConnPool.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnPool.cpp'; fi`
-@am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/CDBConnPool.Tpo $(DEPDIR)/CDBConnPool.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='db_api/CDBConnPool.cpp' object='CDBConnPool.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CDBConnPool.obj `if test -f 'db_api/CDBConnPool.cpp'; then $(CYGPATH_W) 'db_api/CDBConnPool.cpp'; else $(CYGPATH_W) '$(srcdir)/db_api/CDBConnPool.cpp'; fi`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-cscope: cscope.files
-	test ! -s cscope.files \
-	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-
-clean-cscope:
-	-rm -f cscope.files
-
-cscope.files: clean-cscope  cscopelist
-
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-
-distdir: $(DISTFILES)
-	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
-	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
-	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
-dist-gzip: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__post_remove_distdir)
-
-dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__post_remove_distdir)
-
-dist-lzip: distdir
-	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__post_remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__post_remove_distdir)
-
-dist-tarZ: distdir
-	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__post_remove_distdir)
-
-dist-shar: distdir
-	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__post_remove_distdir)
-
-dist-zip: distdir
-	-rm -f $(distdir).zip
-	zip -rq $(distdir).zip $(distdir)
-	$(am__post_remove_distdir)
-
-dist dist-all:
-	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
-	$(am__post_remove_distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-	case '$(DIST_ARCHIVES)' in \
-	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
-	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lz*) \
-	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
-	*.tar.Z*) \
-	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
-	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
-	*.zip*) \
-	  unzip $(distdir).zip ;;\
-	esac
-	chmod -R a-w $(distdir)
-	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
-	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
-	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
-	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
-	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
-	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) \
-	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
-	  && $(MAKE) $(AM_MAKEFLAGS) check \
-	  && $(MAKE) $(AM_MAKEFLAGS) install \
-	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
-	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
-	        distuninstallcheck \
-	  && chmod -R a-w "$$dc_install_base" \
-	  && ({ \
-	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
-	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
-	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
-	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
-	  && rm -rf "$$dc_destdir" \
-	  && $(MAKE) $(AM_MAKEFLAGS) dist \
-	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
-	$(am__post_remove_distdir)
-	@(echo "$(distdir) archives ready for distribution: "; \
-	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
-	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
-distuninstallcheck:
-	@test -n '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: trying to run $@ with an empty' \
-	       '$$(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	$(am__cd) '$(distuninstallcheck_dir)' || { \
-	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
-	  exit 1; \
-	}; \
-	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
-	   || { echo "ERROR: files left after uninstall:" ; \
-	        if test -n "$(DESTDIR)"; then \
-	          echo "  (check DESTDIR support)"; \
-	        fi ; \
-	        $(distuninstallcheck_listfiles) ; \
-	        exit 1; } >&2
-distcleancheck: distclean
-	@if test '$(srcdir)' = . ; then \
-	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
-	  exit 1 ; \
-	fi
-	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
-	  || { echo "ERROR: files left in build directory after distclean:" ; \
-	       $(distcleancheck_listfiles) ; \
-	       exit 1; } >&2
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-	-rm -rf $(top_srcdir)/autom4te.cache
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
-	clean-cscope clean-generic clean-noinstLIBRARIES cscope \
-	cscopelist ctags dist dist-all dist-bzip2 dist-gzip dist-lzip \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-compile distclean-generic distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

File diff suppressed because it is too large
+ 0 - 5126
db/autom4te.cache/output.0


+ 0 - 79
db/autom4te.cache/requests

@@ -1,79 +0,0 @@
-# This file was generated.
-# It contains the lists of macros which have been traced.
-# It can be safely removed.
-
-@request = (
-             bless( [
-                      '0',
-                      1,
-                      [
-                        '/usr/share/autoconf'
-                      ],
-                      [
-                        '/usr/share/autoconf/autoconf/autoconf.m4f',
-                        'aclocal.m4',
-                        'configure.ac'
-                      ],
-                      {
-                        '_LT_AC_TAGCONFIG' => 1,
-                        'AM_PROG_F77_C_O' => 1,
-                        'AC_INIT' => 1,
-                        'm4_pattern_forbid' => 1,
-                        'AC_CANONICAL_TARGET' => 1,
-                        '_AM_COND_IF' => 1,
-                        'AC_CONFIG_LIBOBJ_DIR' => 1,
-                        'AC_SUBST' => 1,
-                        'AC_CANONICAL_HOST' => 1,
-                        'AC_FC_SRCEXT' => 1,
-                        'AC_PROG_LIBTOOL' => 1,
-                        'AM_PROG_MKDIR_P' => 1,
-                        'AM_INIT_AUTOMAKE' => 1,
-                        'AC_CONFIG_SUBDIRS' => 1,
-                        'AM_PATH_GUILE' => 1,
-                        'AM_AUTOMAKE_VERSION' => 1,
-                        'LT_CONFIG_LTDL_DIR' => 1,
-                        'AC_REQUIRE_AUX_FILE' => 1,
-                        'AC_CONFIG_LINKS' => 1,
-                        'LT_SUPPORTED_TAG' => 1,
-                        'm4_sinclude' => 1,
-                        'AM_MAINTAINER_MODE' => 1,
-                        'AM_NLS' => 1,
-                        'AC_FC_PP_DEFINE' => 1,
-                        'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
-                        '_m4_warn' => 1,
-                        'AM_MAKEFILE_INCLUDE' => 1,
-                        'AM_PROG_CXX_C_O' => 1,
-                        '_AM_COND_ENDIF' => 1,
-                        '_AM_MAKEFILE_INCLUDE' => 1,
-                        'AM_ENABLE_MULTILIB' => 1,
-                        'AM_PROG_MOC' => 1,
-                        'AM_SILENT_RULES' => 1,
-                        'AC_CONFIG_FILES' => 1,
-                        'include' => 1,
-                        'LT_INIT' => 1,
-                        'AM_PROG_AR' => 1,
-                        'AM_GNU_GETTEXT' => 1,
-                        'AC_LIBSOURCE' => 1,
-                        'AC_CANONICAL_BUILD' => 1,
-                        'AM_PROG_FC_C_O' => 1,
-                        'AC_FC_FREEFORM' => 1,
-                        'AC_FC_PP_SRCEXT' => 1,
-                        'AH_OUTPUT' => 1,
-                        '_AM_SUBST_NOTMAKE' => 1,
-                        'AC_CONFIG_AUX_DIR' => 1,
-                        'AM_PROG_CC_C_O' => 1,
-                        'sinclude' => 1,
-                        'm4_pattern_allow' => 1,
-                        'AM_CONDITIONAL' => 1,
-                        'AC_CANONICAL_SYSTEM' => 1,
-                        'AM_XGETTEXT_OPTION' => 1,
-                        'AC_CONFIG_HEADERS' => 1,
-                        'AC_DEFINE_TRACE_LITERAL' => 1,
-                        'AM_POT_TOOLS' => 1,
-                        'm4_include' => 1,
-                        '_AM_COND_ELSE' => 1,
-                        'AC_SUBST_TRACE' => 1
-                      }
-                    ], 'Autom4te::Request' )
-           );
-

+ 0 - 373
db/autom4te.cache/traces.0

@@ -1,373 +0,0 @@
-m4trace:configure.ac:5: -1- AC_INIT([libyadb.a], [1.0], [BUG-REPORT-ADDRESS])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([_AC_])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^AS_FLAGS$])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?m4_])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([^dnl$])
-m4trace:configure.ac:5: -1- m4_pattern_forbid([^_?AS_])
-m4trace:configure.ac:5: -1- AC_SUBST([SHELL])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([SHELL])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^SHELL$])
-m4trace:configure.ac:5: -1- AC_SUBST([PATH_SEPARATOR])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PATH_SEPARATOR$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME],      ['AC_PACKAGE_NAME'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_NAME])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME],   ['AC_PACKAGE_TARNAME'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION],   ['AC_PACKAGE_VERSION'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING],    ['AC_PACKAGE_STRING'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_STRING])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL],       ['AC_PACKAGE_URL'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE_URL])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:5: -1- AC_SUBST([exec_prefix], [NONE])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([exec_prefix])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^exec_prefix$])
-m4trace:configure.ac:5: -1- AC_SUBST([prefix], [NONE])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([prefix])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^prefix$])
-m4trace:configure.ac:5: -1- AC_SUBST([program_transform_name], [s,x,x,])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([program_transform_name])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^program_transform_name$])
-m4trace:configure.ac:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([bindir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^bindir$])
-m4trace:configure.ac:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sbindir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^sbindir$])
-m4trace:configure.ac:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([libexecdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^libexecdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([datarootdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^datarootdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([datadir], ['${datarootdir}'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([datadir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^datadir$])
-m4trace:configure.ac:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sysconfdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^sysconfdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([sharedstatedir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^sharedstatedir$])
-m4trace:configure.ac:5: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([localstatedir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^localstatedir$])
-m4trace:configure.ac:5: -1- AC_SUBST([includedir], ['${prefix}/include'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([includedir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^includedir$])
-m4trace:configure.ac:5: -1- AC_SUBST([oldincludedir], ['/usr/include'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([oldincludedir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^oldincludedir$])
-m4trace:configure.ac:5: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
-				     ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
-				     ['${datarootdir}/doc/${PACKAGE}'])])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([docdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^docdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([infodir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^infodir$])
-m4trace:configure.ac:5: -1- AC_SUBST([htmldir], ['${docdir}'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([htmldir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^htmldir$])
-m4trace:configure.ac:5: -1- AC_SUBST([dvidir], ['${docdir}'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([dvidir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^dvidir$])
-m4trace:configure.ac:5: -1- AC_SUBST([pdfdir], ['${docdir}'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([pdfdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^pdfdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([psdir], ['${docdir}'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([psdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^psdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([libdir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^libdir$])
-m4trace:configure.ac:5: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([localedir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^localedir$])
-m4trace:configure.ac:5: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([mandir])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^mandir$])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_NAME$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
-@%:@undef PACKAGE_NAME])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
-@%:@undef PACKAGE_TARNAME])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_VERSION$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
-@%:@undef PACKAGE_VERSION])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_STRING$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
-@%:@undef PACKAGE_STRING])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
-@%:@undef PACKAGE_BUGREPORT])
-m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE_URL$])
-m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
-@%:@undef PACKAGE_URL])
-m4trace:configure.ac:5: -1- AC_SUBST([DEFS])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([DEFS])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^DEFS$])
-m4trace:configure.ac:5: -1- AC_SUBST([ECHO_C])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_C])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_C$])
-m4trace:configure.ac:5: -1- AC_SUBST([ECHO_N])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_N])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_N$])
-m4trace:configure.ac:5: -1- AC_SUBST([ECHO_T])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ECHO_T])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^ECHO_T$])
-m4trace:configure.ac:5: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:5: -1- AC_SUBST([build_alias])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([build_alias])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^build_alias$])
-m4trace:configure.ac:5: -1- AC_SUBST([host_alias])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([host_alias])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^host_alias$])
-m4trace:configure.ac:5: -1- AC_SUBST([target_alias])
-m4trace:configure.ac:5: -1- AC_SUBST_TRACE([target_alias])
-m4trace:configure.ac:5: -1- m4_pattern_allow([^target_alias$])
-m4trace:configure.ac:8: -1- AM_INIT_AUTOMAKE
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
-m4trace:configure.ac:8: -1- AM_AUTOMAKE_VERSION([1.12.3])
-m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([install-sh])
-m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_PROGRAM])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
-m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_SCRIPT])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
-m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_DATA])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_DATA])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_DATA$])
-m4trace:configure.ac:8: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([am__isrc])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^am__isrc$])
-m4trace:configure.ac:8: -1- _AM_SUBST_NOTMAKE([am__isrc])
-m4trace:configure.ac:8: -1- AC_SUBST([CYGPATH_W])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CYGPATH_W])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^CYGPATH_W$])
-m4trace:configure.ac:8: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([PACKAGE])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:8: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([VERSION])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:8: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^PACKAGE$])
-m4trace:configure.ac:8: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
-@%:@undef PACKAGE])
-m4trace:configure.ac:8: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^VERSION$])
-m4trace:configure.ac:8: -1- AH_OUTPUT([VERSION], [/* Version number of package */
-@%:@undef VERSION])
-m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([missing])
-m4trace:configure.ac:8: -1- AC_SUBST([ACLOCAL])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([ACLOCAL])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^ACLOCAL$])
-m4trace:configure.ac:8: -1- AC_SUBST([AUTOCONF])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AUTOCONF])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AUTOCONF$])
-m4trace:configure.ac:8: -1- AC_SUBST([AUTOMAKE])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AUTOMAKE])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AUTOMAKE$])
-m4trace:configure.ac:8: -1- AC_SUBST([AUTOHEADER])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AUTOHEADER])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AUTOHEADER$])
-m4trace:configure.ac:8: -1- AC_SUBST([MAKEINFO])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([MAKEINFO])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^MAKEINFO$])
-m4trace:configure.ac:8: -1- AC_SUBST([install_sh])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([install_sh])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^install_sh$])
-m4trace:configure.ac:8: -1- AC_SUBST([STRIP])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([STRIP])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:8: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
-m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([install-sh])
-m4trace:configure.ac:8: -1- AC_SUBST([MKDIR_P])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([MKDIR_P])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^MKDIR_P$])
-m4trace:configure.ac:8: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([mkdir_p])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^mkdir_p$])
-m4trace:configure.ac:8: -1- AC_SUBST([AWK])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AWK])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AWK$])
-m4trace:configure.ac:8: -1- AC_SUBST([SET_MAKE])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([SET_MAKE])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^SET_MAKE$])
-m4trace:configure.ac:8: -1- AC_SUBST([am__leading_dot])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([am__leading_dot])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^am__leading_dot$])
-m4trace:configure.ac:8: -1- AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AMTAR])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^AMTAR$])
-m4trace:configure.ac:8: -1- AC_SUBST([am__tar])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([am__tar])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^am__tar$])
-m4trace:configure.ac:8: -1- AC_SUBST([am__untar])
-m4trace:configure.ac:8: -1- AC_SUBST_TRACE([am__untar])
-m4trace:configure.ac:8: -1- m4_pattern_allow([^am__untar$])
-m4trace:configure.ac:12: -1- AC_SUBST([CXX])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:12: -1- AC_SUBST([CXXFLAGS])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CXXFLAGS])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:12: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:12: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:12: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:12: -1- AC_SUBST([CXX])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:12: -1- AC_SUBST([ac_ct_CXX])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([ac_ct_CXX])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:12: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([EXEEXT])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^EXEEXT$])
-m4trace:configure.ac:12: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([OBJEXT])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^OBJEXT$])
-m4trace:configure.ac:12: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([DEPDIR])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^DEPDIR$])
-m4trace:configure.ac:12: -1- AC_SUBST([am__include])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__include])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^am__include$])
-m4trace:configure.ac:12: -1- AC_SUBST([am__quote])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__quote])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^am__quote$])
-m4trace:configure.ac:12: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:12: -1- AC_SUBST([AMDEP_TRUE])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AMDEP_TRUE])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^AMDEP_TRUE$])
-m4trace:configure.ac:12: -1- AC_SUBST([AMDEP_FALSE])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AMDEP_FALSE])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^AMDEP_FALSE$])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
-m4trace:configure.ac:12: -1- AC_SUBST([AMDEPBACKSLASH])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
-m4trace:configure.ac:12: -1- AC_SUBST([am__nodep])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__nodep])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^am__nodep$])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([am__nodep])
-m4trace:configure.ac:12: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CXXDEPMODE])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:12: -1- AM_CONDITIONAL([am__fastdepCXX], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:12: -1- AC_SUBST([am__fastdepCXX_TRUE])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:12: -1- AC_SUBST([am__fastdepCXX_FALSE])
-m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:12: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:13: -1- AC_SUBST([CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([CFLAGS])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CFLAGS])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CFLAGS$])
-m4trace:configure.ac:13: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:13: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:13: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:13: -1- AC_SUBST([CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([ac_ct_CC])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^ac_ct_CC$])
-m4trace:configure.ac:13: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([CCDEPMODE])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^CCDEPMODE$])
-m4trace:configure.ac:13: -1- AM_CONDITIONAL([am__fastdepCC], [
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:13: -1- AC_SUBST([am__fastdepCC_TRUE])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
-m4trace:configure.ac:13: -1- AC_SUBST([am__fastdepCC_FALSE])
-m4trace:configure.ac:13: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
-m4trace:configure.ac:13: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
-m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
-m4trace:configure.ac:13: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
-m4trace:configure.ac:15: -1- AC_SUBST([RANLIB])
-m4trace:configure.ac:15: -1- AC_SUBST_TRACE([RANLIB])
-m4trace:configure.ac:15: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:17: -1- AC_CONFIG_FILES([Makefile])
-m4trace:configure.ac:18: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
-m4trace:configure.ac:18: -1- m4_pattern_allow([^LIB@&t@OBJS$])
-m4trace:configure.ac:18: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([LTLIBOBJS])
-m4trace:configure.ac:18: -1- m4_pattern_allow([^LTLIBOBJS$])
-m4trace:configure.ac:18: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
-m4trace:configure.ac:18: -1- AC_SUBST([am__EXEEXT_TRUE])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
-m4trace:configure.ac:18: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
-m4trace:configure.ac:18: -1- AC_SUBST([am__EXEEXT_FALSE])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
-m4trace:configure.ac:18: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
-m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
-m4trace:configure.ac:18: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([top_builddir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([top_build_prefix])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([srcdir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([abs_srcdir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([top_srcdir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([abs_top_srcdir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([builddir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([abs_builddir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([abs_top_builddir])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([INSTALL])
-m4trace:configure.ac:18: -1- AC_SUBST_TRACE([MKDIR_P])

+ 10 - 7
db/db_api/CDBCommon.h

@@ -27,7 +27,7 @@ V 1.0.0
 
 namespace YADB
 {
-    //----------------------------------------------------------------------------
+	//----------------------------------------------------------------------------
 	//                                 数据库错误定义
 	//----------------------------------------------------------------------------
 	const int DB_ERR_NO_ERROR               = 0;//无错误
@@ -55,17 +55,19 @@ namespace YADB
 	* @brief
 	数据库连接设置结构体
 	*/
-    struct _DB_CONN_SETTING_
+	struct _DB_CONN_SETTING_
 	{
+		unsigned int Port;//端口
+		int TimeOut;//连接数据库超时(单位:秒)
 		std::string Host;//数据库主机地址
 		std::string User;//用户名
 		std::string PWD;//密码
 		std::string DBName;//数据库名
 		std::string CharSet;//字符集
 		std::string stmtSQL;//预处理SQL
-		int TimeOut;//连接数据库超时(单位:秒)
 		_DB_CONN_SETTING_()
 		{
+			Port    = 3306;
 			TimeOut = 0;
 		}
 	};
@@ -83,10 +85,10 @@ namespace YADB
 		}
 	};
 
-    /**
-    * @brief
-    异步执行结构体
-    */
+	/**
+	* @brief
+	异步执行结构体
+	*/
 	struct _ASYNC_SQL_
 	{
 		int FailedCount;//执行失败次数
@@ -106,3 +108,4 @@ namespace YADB
 
 
 
+

+ 87 - 72
db/db_api/CDBConnPool.cpp

@@ -3,7 +3,7 @@
 
 namespace YADB
 {
-    boost::lockfree::queue<_ASYNC_SQL_*, boost::lockfree::capacity<MAX_ASYNC_QUEQUE_CAPACITY>> __AsyncQueue;//异步执行无锁队列
+	boost::lockfree::queue<_ASYNC_SQL_*, boost::lockfree::capacity<MAX_ASYNC_QUEQUE_CAPACITY>> __AsyncQueue;//异步执行无锁队列
 
 	CDBConnPool::CDBConnPool()
 	{
@@ -77,7 +77,7 @@ namespace YADB
 				}
 			}	
 		}
-		// 是否已创建异步线程
+		//是否已创建异步线程
 		if (bAsync || !__Running)
 		{
 			//创建异步执行线程
@@ -85,7 +85,7 @@ namespace YADB
 
 			//启动异步执行线程
 			__StartAsyncThrd();
-		}
+		}		
 		return true;
 	}
 
@@ -96,7 +96,7 @@ namespace YADB
 		//停止异步执行线程
 		__StopAsyncThrd();
 
-		//刪除异步执行线程连接
+		//??????????步执行线程连接
 		__DestroyAsyncThrdConn();
 
 		//把所有列表中的连接对象都关闭删除并清除列表
@@ -136,7 +136,7 @@ namespace YADB
 		else
 		{
 			//如果已经没有空闲连接,只要当前连接池数量没有超过最大连接数就创建一个临时连接
-			// 这个判断没有意义(进入这个 __IdleConnList.size() <= 0 )
+			//这个判断无意义
 			if ( __IdleConnList.size() < DCC_MAX_COUNT )
 			{
 				pConn = __CreateIdleConn( Error, true );
@@ -200,14 +200,14 @@ namespace YADB
 		}
 	}
 
-    void CDBConnPool::_AsyncThreadFunc( CDBConnPool* pOwner )
-    {
-    	std::string Error;
-    	while( pOwner->__Running )
-	    {
-    		_ASYNC_SQL_* pData = 0;
-		
-    		while ( __AsyncQueue.pop( pData ) )
+	void CDBConnPool::_AsyncThreadFunc( CDBConnPool* pOwner )
+	{
+		std::string Error;
+		while( pOwner->__Running )
+		{
+			_ASYNC_SQL_* pData = 0;
+
+			while ( __AsyncQueue.pop( pData ) )
 			{
 				if ( pData )
 				{
@@ -218,7 +218,7 @@ namespace YADB
 						if ( (my_ulonglong)-1 == llRes )
 						{
 							//Execute failed, write log...
-							printf( "Error,调用ExcuteRealSql失败,Err=%s \n sql=%s \n", Error.c_str(),  pData->SQL.c_str());
+							printf( "Error,调用ExcuteRealSql失败,Err=%s\n", Error.c_str() );
 							//如果失败了看是不是数据库断开连接了,尝试重新连接一次
 							if ( __pAsyncDBConn->ConnctionTest( Error ) != 0 )
 							{
@@ -252,30 +252,30 @@ namespace YADB
 				}
 			}
 
-    		boost::this_thread::sleep( boost::posix_time::microseconds( 10 ) );
-	    }
+			boost::this_thread::sleep_for( boost::chrono::milliseconds( 1 ) );
+		}
 
-    	//线程退出
-    	__IsExited = true;
-    }
+		//线程退出
+		__IsExited = true;
+	}
 
-    void CDBConnPool::__StopAsyncThrd()
-    {
-    	if ( !__Running )
-    	{
-            return;
-    	}
+	void CDBConnPool::__StopAsyncThrd()
+	{
+		if ( !__Running )
+		{
+			return;
+		}
 
-    	//等待异步执行线程退出
-	    __Running = false;
+		//等待异步执行线程退出
+		__Running = false;
 
-	    while ( !__IsExited )
-	    {
-		    boost::this_thread::sleep(boost::posix_time::millisec(1));
-	    }
+		while ( !__IsExited )
+		{
+			boost::this_thread::sleep(boost::posix_time::millisec(1));
+		}
 
-	    //把异步执行无锁队列中每个元素释放
-	    _ASYNC_SQL_* pData = 0;
+		//把异步执行无锁队列中每个元素释放
+		_ASYNC_SQL_* pData = 0;
 		while ( __AsyncQueue.pop( pData ) )
 		{
 			if (pData)
@@ -284,7 +284,7 @@ namespace YADB
 				pData = 0;
 			}
 		}
-    }
+	}
 
 	void CDBConnPool::__StartAsyncThrd()
 	{
@@ -313,28 +313,28 @@ namespace YADB
 
 	void CDBConnPool::__DestroyAsyncThrdConn()
 	{
-        if ( __pAsyncDBConn )
-        {
-        	__pAsyncDBConn->Close();
-        	delete __pAsyncDBConn;
-        	__pAsyncDBConn = 0;
-        }
+		if ( __pAsyncDBConn )
+		{
+			__pAsyncDBConn->Close();
+			delete __pAsyncDBConn;
+			__pAsyncDBConn = 0;
+		}
 	}
 
-    bool CDBConnPool::PushAsync( const std::string& strSQL )
-    {
-    	_ASYNC_SQL_* pData = new _ASYNC_SQL_;
-    	if ( !pData )
-    	{
-            return false;
-    	}
+	bool CDBConnPool::PushAsync( const std::string& strSQL )
+	{
+		_ASYNC_SQL_* pData = new _ASYNC_SQL_;
+		if ( !pData )
+		{
+			return false;
+		}
 
-    	pData->SQL = strSQL;
-    	return __AsyncQueue.push( pData );
-    }
+		pData->SQL = strSQL;
+		return __AsyncQueue.push( pData );
+	}
 
-    bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes,std::string& Error )
-    {
+	bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes,std::string& Error )
+	{
 		CDBConnect *pConn = GetDBConnect( Error );
 		if ( 0 == pConn )
 		{
@@ -342,31 +342,46 @@ namespace YADB
 		}
 
 		MYSQL_RES* pRes = pConn->Query( szSql, Error );
-	GiveBack( pConn );
-        return DBRes.Bind( pRes, Error );
-    }
-    
-    MYSQL_RES* CDBConnPool::Query( const char *szSql, std::string& Error)
-    {
-        CDBConnect *pConn = GetDBConnect(Error);
-        if( 0 == pConn){
-            return nullptr;
-        }
-
-        MYSQL_RES* pRes = pConn->Query(szSql,Error);
-        GiveBack(pConn);
-        return pRes;
-    }
-    my_ulonglong CDBConnPool::ExecuteSql( const char *szSql, std::string& Error )
-    {
-    	CDBConnect *pConn = GetDBConnect( Error );
+		GiveBack( pConn );
+		return DBRes.Bind( pRes, Error );
+	}
+
+	MYSQL_RES* CDBConnPool::Query( const char *szSql, std::string& Error)
+	{
+		CDBConnect *pConn = GetDBConnect(Error);
+		if( 0 == pConn){
+			return nullptr;
+		}
+
+		MYSQL_RES* pRes = pConn->Query(szSql,Error);
+		GiveBack(pConn);
+		return pRes;
+	}
+	my_ulonglong CDBConnPool::ExecuteSql( const char *szSql, std::string& Error )
+	{
+		CDBConnect *pConn = GetDBConnect( Error );
 		if ( 0 == pConn )
 		{
 			return -1;
 		}
-	my_ulonglong nRet = pConn->ExecuteSql( szSql, Error );
+		my_ulonglong nRet = pConn->ExecuteSql( szSql, Error );
 		GiveBack( pConn );
 		return nRet;
 		//return pConn->ExecuteSql( szSql, Error );
-    }
+	}
+
+	my_ulonglong CDBConnPool::ExecuteSqlID( const char * szSql, std::string & Error )
+	{
+		CDBConnect *pConn = GetDBConnect( Error );
+		if ( 0 == pConn )
+		{
+			return -1;
+		}
+
+		my_ulonglong nRet = pConn->ExecuteSqlID( szSql, Error );
+
+		GiveBack( pConn );
+		return nRet;
+	}
 }
+

+ 133 - 118
db/db_api/CDBConnPool.h

@@ -1,3 +1,7 @@
+#ifndef CDBConnPool_h__
+#define CDBConnPool_h__
+
+
 /**
 * @brief
 数据库连接池类
@@ -20,9 +24,7 @@ V 1.0.0
 
 */
 
-//#pragma once
-#ifndef YADB_CONNECT_POOL_H
-#define YADB_CONNECT_POOL_H
+#pragma once
 
 #include <boost/atomic.hpp>
 #include <boost/thread/thread.hpp>
@@ -44,60 +46,58 @@ namespace YADB
 		std::list<CDBConnect*> __IdleConnList;//没有使用的数据库连接列表
 		_DB_POOL_SETTING_ __Setting;//数据库连接池设置
 		std::mutex __mtx;//互斥量
-		boost::atomic<bool> __Running{ false };//线程是否运行的标识 默认未开启,等创建线程后开启
+		boost::atomic<bool> __Running{ true };//线程是否运行的标识		
 		boost::atomic<bool> __IsExited{ false };//线程是否已退出的标识
 		CDBConnect* __pAsyncDBConn;//异步执行线程用的数据库连接
 	private:
 		/**
-	    * @brief
-	    创建一个空闲连接函数。
-
-        * @param  [out] std::string& Error  错误信息\n
-	    * @param  [in] bool IsTemp  创建的连接是否是临时的\n
 
-	    * @return 返回创建的连接
-	    * @return  >0   成功\n
-	    * @return  ==0  失败\n
+		* @brief
+		创建一个空闲连接函数。
+		* @param  [out] std::string& Error  错误信息\n
+		* @param  [in] bool IsTemp  创建的连接是否是临时的\n
 
-	    * @note
+		* @return 返回创建的连接
+		* @return  >0   成功\n
+		* @return  ==0  失败\n
 
-	    * @warning
+		* @note
 
-	    * @bug
+		* @warning
+		* @bug
 
-	    */
+		*/
 		CDBConnect* __CreateIdleConn( std::string& Error, bool IsTemp = false );
 		/**
-	    * @brief
-	    创建异步执行线程所用连接函数。
-
-	    * @param  无\n
+		* @brief
+		创建异步执行线程所用连接函数。
 
-	    * @return 无\n
+		* @param  无\n
 
-	    * @note
+		* @return 无\n
 
-	    * @warning
+		* @note
 
-	    * @bug
+		* @warning
 
-	    */
+		* @bug
+		*/
 		void __CreateAsyncThrdConn();
 		/**
-	    * @brief
-	    刪除创建异步执行线程所用连接函数。
+		* @brief
+		??????创建异步执行线程所用连接函数。
 
-	    * @param  无\n
+		* @param  无\n
 
-	    * @return 无\n
+		* @return 无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void __DestroyAsyncThrdConn();
 		/**
 		* @brief
@@ -115,154 +115,151 @@ namespace YADB
 
 		*/
 		void __StartAsyncThrd();
-	    /**
-	    * @brief
-	    停止异步执行线程函数。
+		/**
+		* @brief
+		停止异步执行线程函数。
 
-	    * @param  无\n
+		* @param  无\n
 
-	    * @return 无
+		* @return 无
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void __StopAsyncThrd();
 	protected:
-	    /**
-	    * @brief
-	    异步执行线程函数。
+		/**
+		* @brief
+		异步执行线程函数。
 
-	    * @param  [in] CDBConnPool* pOwner  线程所属对象\n
+		* @param  [in] CDBConnPool* pOwner  线程所属对象\n
 
-	    * @return 无\n
+		* @return 无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void _AsyncThreadFunc( CDBConnPool* pOwner );//线程函数
 	public:
 		CDBConnPool();
 		~CDBConnPool();
 		/**
-	    * @brief
-	    创建数据库连接池函数。
+		* @brief
+		创建数据库连接池函数。
 
-	    * @param  [in] const _DB_POOL_SETTING_& Setting  数据库连接池设置\n
-		* @param  [in] bool bAsync  是否创建异步队列及处理线程\n
-	    * @param  [out] std::string& szError  错误信息\n
+		* @param  [in] const _DB_POOL_SETTING_& Setting  数据库连接池设置\n
+		* @param  [out] std::string& Error  错误信息\n
 
-	    * @return 返回创建数据库连接池是否成功
-	    * @return  true   成功
-	    * @return  false  失败
+		* @return 返回创建数据库连接池是否成功
+		* @return  true   成功
+		* @return  false  失败
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-	   	bool Create( const _DB_POOL_SETTING_& Setting, std::string& szError );
+		*/
+		bool Create( const _DB_POOL_SETTING_& Setting, std::string& Error );
 		bool Create( const _DB_POOL_SETTING_& Setting,bool bAsync, std::string& szError );
 		/**
-	    * @brief
-	    关闭线程池函数。
+		* @brief
+		关闭线程池函数。
 
-	    * @param  无\n
+		* @param  无\n
 
-	    * @return  无\n
+		* @return  无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void Close();
 		/**
-	    * @brief
-	    从连接池中获得一个数据库连接函数。
+		* @brief
+		从连接池中获得一个数据库连接函数。
 
-	    * @param  [out] std::string& Error  错误信息\n
+		* @param  [out] std::string& Error  错误信息\n
 
-	    * @return 返回获得一个数据库连接是否成功
-	    * @return  0 失败\n
-	    * @return  !=0 获得的数据库连接\n
+		* @return 返回获得一个数据库连接是否成功
+		* @return  0 失败\n
+		* @return  !=0 获得的数据库连接\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		CDBConnect* GetDBConnect( std::string& Error );
 		/**
-	    * @brief
-	    归还一个数据库连接到连接池中函数。
+		* @brief
+		归还一个数据库连接到连接池中函数。
 
-	    * @param  [in] CDBConnect* pConn  数据库连接\n
+		* @param  [in] CDBConnect* pConn  数据库连接\n
 
-	    * @return  无\n
+		* @return  无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void GiveBack( CDBConnect* pConn );
-	    /**
-	    * @brief
-	    把SQL语句加入异步执行队列函数。
+		/**
+		* @brief
+		把SQL语句加入异步执行队列函数。
 
-	    * @param  [in] const std::string& strSQL  要执行的SQL语句\n
+		* @param  [in] const std::string& strSQL  要执行的SQL语句\n
 
-	    * @return  加入异步执行队列是否成功\n
-	    * @return  true成功\n
-	    * @return  false失败\n
+		* @return  加入异步执行队列是否成功\n
+		* @return  true成功\n
+		* @return  false失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		bool PushAsync( const std::string& strSQL );
 		/**
-		 * @brief
-		 执行SQL语句返回结果集函数。
+		* @brief
+		执行SQL语句返回结果集函数。
 
-		 * @param [in] const char *szSql  SQL语句\n
-		 * @param [out] CDBResultSet& DBRes  结果集\n
-		 * @param [out] std::string& Error  错误信息\n
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] CDBResultSet& DBRes  结果集\n
+		* @param [out] std::string& Error  错误信息\n
 
-		 * @return 返回查询是否成功
-		 * @return  true  成功\n
-		 * @return  false  失败\n
+		* @return 返回查询是否成功
+		* @return  true  成功\n
+		* @return  false  失败\n
 
-		 * @note
+		* @note
 
-		 * @warning
+		* @warning
 
-		 * @bug
+		* @bug
 
 		*/
-		bool Query( const char *szSql, CDBResultSet& DBRes,std::string& Error );
-        MYSQL_RES* Query( const char *szSql, std::string& Error);      
-        
-        
+		bool Query( const char *szSql, CDBResultSet& DBRes, std::string& Error );
+		MYSQL_RES* Query( const char *szSql, std::string& Error );
 		/**
 		* @brief
 		执行SQL语句函数。
@@ -282,8 +279,26 @@ namespace YADB
 
 		*/
 		my_ulonglong ExecuteSql( const char *szSql, std::string& Error );
+		/**
+		* @brief
+		执行SQL语句并获得ID的函数。
+
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
+
+		* @return 返回获得的ID
+		* @return  <=0  失败\n
+		* @return  >0   成功\n
+
+		* @note
+
+		* @warning
+
+		* @bug
+
+		*/
+		my_ulonglong ExecuteSqlID( const char *szSql, std::string& Error );
 	};
 }
+#endif // CDBConnPool_h__
 
-
-#endif

+ 20 - 0
db/db_api/CDBConnect.cpp

@@ -290,4 +290,24 @@ namespace YADB
 			__pstmt = 0;
 		}
 	}
+
+	my_ulonglong CDBConnect::ExecuteSqlID( const char * szSql, std::string & Error )
+	{
+		if ( 0 == __pConn )
+		{
+			Error = "Error,not connected to database!";
+			return DB_ERR_NOT_CONNECT_DB;
+		}
+
+		if ( mysql_real_query( __pConn, szSql, strlen( szSql ) ) )
+		{
+			Error = "Failed to execute SQL!";
+			Error += " LastError=";
+			Error += GetLastError();
+			return DB_ERR_EXCUTE_QUERY;
+		}
+
+		return mysql_insert_id( __pConn );
+	}
 }
+

+ 155 - 135
db/db_api/CDBConnect.h

@@ -32,10 +32,10 @@ namespace YADB
 	class CDBConnect
 	{
 	private:
-    	MYSQL * __pConn;//数据库连接
-    	CDBResultSet __RessultSet;//结果集
-    	bool __IsTemp;//是否是临时的(如果是临时使用的,归还到连接池中时会自动删除,以保持总体连接数不变)
-    	MYSQL_STMT *__pstmt;//预处理
+		MYSQL * __pConn;//数据库连接
+		CDBResultSet __RessultSet;//结果集
+		bool __IsTemp;//是否是临时的(如果是临时使用的,归还到连接池中时会自动删除,以保持总体连接数不变)
+		MYSQL_STMT *__pstmt;//预处理
 	public:
 		CDBConnect( bool IsTemp = false );
 		~CDBConnect();
@@ -59,131 +59,131 @@ namespace YADB
 		*/
 		bool Connect( const _DB_CONN_SETTING_& DBSetting, std::string& Error );
 		/**
-	    * @brief
-	    关闭连接函数。
+		* @brief
+		关闭连接函数。
 
-	    * @param  无\n
+		* @param  无\n
 
-	    * @return  无\n
+		* @return  无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void Close();
 		/**
-	    * @brief
-	    测试连接函数。
+		* @brief
+		测试连接函数。
 
-	    * @param [out] std::string& Error 错误信息\n
+		* @param [out] std::string& Error 错误信息\n
 
-	    * @return 返回测试连接是否成功
-	    * @return  0  连接测试成功\n
-	    * @return  !=0  连接测试失败\n
+		* @return 返回测试连接是否成功
+		* @return  0  连接测试成功\n
+		* @return  !=0  连接测试失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		int ConnctionTest( std::string& Error );
 		/**
-	    * @brief
-	    设置自动提交的函数。
+		* @brief
+		设置自动提交的函数。
 
-	    * @param [in] bool Mode 是否是否自动提交\n
-	    * @param [out] std::string& Error 错误信息\n
+		* @param [in] bool Mode 是否是否自动提交\n
+		* @param [out] std::string& Error 错误信息\n
 
-	    * @return 返回设置自动提交是否成功
-	    * @return  0  成功\n
-	    * @return  !=0  失败\n
+		* @return 返回设置自动提交是否成功
+		* @return  0  成功\n
+		* @return  !=0  失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		int AutoCommit( bool Mode, std::string& Error );
 		/**
-	    * @brief
-	    提交函数。
+		* @brief
+		提交函数。
 
-	    * @param [out] std::string& Error 错误信息\n
+		* @param [out] std::string& Error 错误信息\n
 
-	    * @return 返回提交是否成功
-	    * @return  0  成功\n
-	    * @return  !=0  失败\n
+		* @return 返回提交是否成功
+		* @return  0  成功\n
+		* @return  !=0  失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		int Commit( std::string& Error  );
 		/**
-	    * @brief
-	    回滚函数。
+		* @brief
+		回滚函数。
 
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回回滚是否成功
-	    * @return  0  成功\n
-	    * @return  !=0  失败\n
+		* @return 返回回滚是否成功
+		* @return  0  成功\n
+		* @return  !=0  失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		int RollBack( std::string& Error );
 		/**
-	    * @brief
-	    执行SQL语句返回结果集函数。
+		* @brief
+		执行SQL语句返回结果集函数。
 
-	    * @param [in] const char *szSql  SQL语句\n
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回结果集
-	    * @return  0  失败\n
-	    * @return  !=0  成功\n
+		* @return 返回结果集
+		* @return  0  失败\n
+		* @return  !=0  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		CDBResultSet* ExecuteQuery( const char *szSql, std::string& Error );
 		/**
-	    * @brief
-	    执行SQL语句返回mysql原始结果集函数。
+		* @brief
+		执行SQL语句返回mysql原始结果集函数。
 
-	    * @param [in] const char *szSql  SQL语句\n
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回的mysql原始结果集
-	    * @return  ==0  失败\n
-	    * @return  !=0  成功\n
+		* @return 返回的mysql原始结果集
+		* @return  ==0  失败\n
+		* @return  !=0  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		MYSQL_RES* Query( const char *szSql, std::string& Error );
 		/**
 		* @brief
@@ -205,57 +205,57 @@ namespace YADB
 		*/
 		my_ulonglong ExecuteSql( const char *szSql, std::string& Error );
 		/**
-	    * @brief
-	    执行SQL语句函数。
+		* @brief
+		执行SQL语句函数。
 
-	    * @param [in] const char *szSql  SQL语句\n
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回影响到的记录数量
-	    * @return  -1  失败\n
-	    * @return  >=0  成功\n
+		* @return 返回影响到的记录数量
+		* @return  -1  失败\n
+		* @return  >=0  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		my_ulonglong ExecuteRealSql( const char *szSql, std::string& Error );
 		/**
-	    * @brief
-	    获得最后一次错误信息函数。
+		* @brief
+		获得最后一次错误信息函数。
 
-	    * @param 无\n
+		* @param 无\n
 
-	    * @return 返回最后一次错误
+		* @return 返回最后一次错误
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		const char* GetLastError();
 		/**
-	    * @brief
-	    获得最后一次插入的ID函数。
+		* @brief
+		获得最后一次插入的ID函数。
 
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回最后一次插入的ID
-	    * @return  -1  失败\n
-	    * @return  >=0  成功\n
+		* @return 返回最后一次插入的ID
+		* @return  -1  失败\n
+		* @return  >=0  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		my_ulonglong GetLastInsertID( std::string& Error );
 		/**
 		* @brief
@@ -274,59 +274,79 @@ namespace YADB
 		*/
 		bool IsTemp();
 		/**
-	    * @brief
-	    准备stmt函数。
+		* @brief
+		准备stmt函数。
 
-	    * @param const char *szSql 预处理SQL语句\n
-	    * @param [out] std::string& Error  错误信息\n
+		* @param const char *szSql 预处理SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回准备stmt是否成功
-	    * @return  false  失败\n
-	    * @return  true  成功\n
+		* @return 返回准备stmt是否成功
+		* @return  false  失败\n
+		* @return  true  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		bool Preparestmt( const char *szSql, std::string& Error );
 		/**
-	    * @brief
-	    执行stmt函数。
+		* @brief
+		执行stmt函数。
 
-	    * @param [in] MYSQL_BIND *stBinds  要执行的BIND\n
-	    * @param [in] uint64_t *piId  执行后获得的ID\n
-	    * @param [out] std::string& Error  错误信息\n
+		* @param [in] MYSQL_BIND *stBinds  要执行的BIND\n
+		* @param [in] uint64_t *piId  执行后获得的ID\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return 返回执行stmt成功还是失败
-	    * @return  false  失败\n
-	    * @return  true  成功\n
+		* @return 返回执行stmt成功还是失败
+		* @return  false  失败\n
+		* @return  true  成功\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		bool stmtExcute( MYSQL_BIND *stBinds, uint64_t *piId, std::string& Error );
 		/**
-	    * @brief
-	    关闭stmt函数。
+		* @brief
+		关闭stmt函数。
 
-	    * @param 无\n
+		* @param 无\n
 
-	    * @return 无\n
+		* @return 无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
+		*/
 		void stmtClose();
+		/**
+		* @brief
+		执行SQL语句并获得自动生成的ID函数。
+
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] std::string& Error  错误信息\n
+
+		* @return 返回自动生成的ID
+		* @return  <1  失败\n
+		* @return  >=1  成功\n
+
+		* @note
+
+		* @warning
+
+		* @bug
+
+		*/
+		my_ulonglong ExecuteSqlID( const char *szSql, std::string& Error );
 	};
 }
+

+ 5 - 51
db/db_tool.cpp

@@ -26,7 +26,8 @@ namespace db_tool
 		return std::string(sql);
 	}
 
-    void save_attendance(const std::shared_ptr<card_location_base>& card_ptr)
+    void save_attendance(const std::shared_ptr<card_location_base>& card_ptr,
+                         const std::shared_ptr<area_hover>& area_hover_ptr)
     {
         char sql[LENGTH_SQL] = {0};
 
@@ -48,56 +49,9 @@ namespace db_tool
         std::string start_str = tool_time::to_str(start);
         std::string end_str = tool_time::to_str(end);
 
-        int landmarkid = 0;
-        int landmarkdirect=0;
-        double landmarkdist=0;
-        auto area_hover_ptr = card_ptr->get_area_hover();
-        if(area_hover_ptr)
-        {
-            landmarkid = area_hover_ptr->landmark_id;
-            landmarkdirect = area_hover_ptr->landmark_dir;
-            landmarkdist = area_hover_ptr->landmark_dis;
-        }
-
-        sprintf(sql, "CALL %s(%s, %d, '%s', '%s', %d, %d, %.3f);", call.c_str(),
-               type_id_to_str(card_ptr->m_type,card_ptr->m_id).c_str(),
-                card_ptr->m_id, start_str.c_str(), end_str.c_str(),
-                landmarkid, landmarkdirect, landmarkdist);
-
-        PushAsync(sql);
-    }
-
-    void save_attendance(const std::shared_ptr<card_location_base>& card_ptr,
-                         bool is_attendance, std::chrono::system_clock::time_point& attendance_start_time)
-    {
-        char sql[LENGTH_SQL] = {0};
-
-        std::string call("add_att_staff");
-        if(card_ptr->is_vehicle())//车卡
-        {
-            call="add_att_vehicle";
-        }
-
-        auto start = attendance_start_time;
-        auto end = attendance_start_time;
-        if(!is_attendance)//考勤结束时间
-        {
-            end = std::chrono::system_clock::now();
-        }
-
-        std::string start_str = tool_time::to_str(start);
-        std::string end_str = tool_time::to_str(end);
-
-        int landmarkid = 0;
-        int landmarkdirect=0;
-        double landmarkdist=0;
-        auto area_hover_ptr = card_ptr->get_area_hover();
-        if(area_hover_ptr)
-        {
-            landmarkid = area_hover_ptr->landmark_id;
-            landmarkdirect = area_hover_ptr->landmark_dir;
-            landmarkdist = area_hover_ptr->landmark_dis;
-        }
+        int landmarkid = area_hover_ptr->landmark_id;
+        int landmarkdirect=area_hover_ptr->landmark_dir;
+        double landmarkdist=area_hover_ptr->landmark_dis;
 
         sprintf(sql, "CALL %s(%s, %d, '%s', '%s', %d, %d, %.3f);", call.c_str(),
                type_id_to_str(card_ptr->m_type,card_ptr->m_id).c_str(),

+ 2 - 2
db/db_tool.h

@@ -4,12 +4,12 @@
 #include <memory>
 #include<chrono>
 struct card_location_base;
+struct area_hover;
 namespace db_tool
 {
     void PushAsync(const char* sql);
-    void save_attendance(const std::shared_ptr<card_location_base>& card_ptr);
     void save_attendance(const std::shared_ptr<card_location_base>& card_ptr,
-                         bool is_attendance, std::chrono::system_clock::time_point& attendance_start_time);
+                                        const std::shared_ptr<area_hover>& area_hover_ptr);
 }
 
 #endif

BIN
db/libyadb.a


+ 43 - 29
module_service/area_business_car_attendance.cpp

@@ -34,7 +34,18 @@ void area_business_car_attendance::on_enter(const std::shared_ptr<area_hover>&ar
         return;
     }
 
-    save_attendance(card_ptr, area_hover_ptr);
+    auto mine_tool_ptr = card_ptr->get_mine_tool();
+    if(!mine_tool_ptr->m_is_attendance)
+    {
+        return;
+    }
+
+    //考勤结束
+    mine_tool_ptr->m_is_attendance=false;
+    //作为一条结束考勤记录保存到数据库
+    db_tool::save_attendance(card_ptr, area_hover_ptr);
+
+    //save_attendance(card_ptr, area_hover_ptr);
 
     //    auto ptr_temp = std::make_shared<car_attendance_data>();
     //    ptr = ptr_temp;
@@ -51,7 +62,7 @@ void area_business_car_attendance::on_hover(const std::shared_ptr<area_hover>&a,
 
 }
 //记录离开考勤区域信息,开始考勤
-void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
+void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
                                             const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
     if(!card_ptr->is_vehicle())
@@ -68,7 +79,7 @@ void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
         mine_tool_ptr->m_attendance_start_time=std::chrono::system_clock::now();
 
         //作为一条开始考勤记录保存到数据库
-        db_tool::save_attendance(card_ptr);
+        db_tool::save_attendance(card_ptr, area_hover_ptr);
 
         //                log_info("车卡考勤开始:卡id=%d,卡type=%d,区域id=%d, stat_attendance=%d",
         //                         card_ptr->m_id, card_ptr->m_type,
@@ -91,6 +102,35 @@ void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
     //        db_tool::save_attendance(card_ptr, ptr_temp->m_is_attendance, ptr_temp->m_attendance_start_time);
     //    }
 }
+
+/////area_hover_ptr==nullptr 表示接收到 web的删除卡命令
+//void area_business_car_attendance::save_attendance(const std::shared_ptr<card_location_base>& card_ptr,
+//                                                  const std::shared_ptr<area_hover> area_hover_ptr)
+//{
+//    auto mine_tool_ptr = card_ptr->get_mine_tool();
+//    if(!mine_tool_ptr->m_is_attendance)
+//    {
+//        return;
+//    }
+
+//    //考勤结束
+//    mine_tool_ptr->m_is_attendance=false;
+//    //作为一条结束考勤记录保存到数据库
+//    db_tool::save_attendance(card_ptr);
+
+////    if(area_hover_ptr)
+////    {
+////        log_info("车卡考勤结束:卡id=%d,卡type=%d,区域id=%d, stat_attendance=%d",
+////                 card_ptr->m_id, card_ptr->m_type,
+////                 area_ptr->m_id,mine_tool_ptr->m_stat_attendance);
+////    }
+////    else
+////    {
+////        log_info("收到web的删除卡命令,车卡考勤结束:卡id=%d,卡type=%d,stat_attendance=%d",
+////                 card_ptr->m_id, card_ptr->m_type,mine_tool_ptr->m_stat_attendance);
+////    }
+//}
+
 #if 0
 
 //void area_business_car_attendance::init_attendance_area_from_db()
@@ -127,31 +167,5 @@ void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
 
 #endif
 
-///area_hover_ptr==nullptr 表示接收到 web的删除卡命令
-void area_business_car_attendance::save_attendance(const std::shared_ptr<card_location_base>& card_ptr,
-                                                  const std::shared_ptr<area_hover> area_hover_ptr)
-{
-    auto mine_tool_ptr = card_ptr->get_mine_tool();
-    if(!mine_tool_ptr->m_is_attendance)
-    {
-        return;
-    }
-
-    //考勤结束
-    mine_tool_ptr->m_is_attendance=false;
-    //作为一条结束考勤记录保存到数据库
-    db_tool::save_attendance(card_ptr);
 
-//    if(area_hover_ptr)
-//    {
-//        log_info("车卡考勤结束:卡id=%d,卡type=%d,区域id=%d, stat_attendance=%d",
-//                 card_ptr->m_id, card_ptr->m_type,
-//                 area_ptr->m_id,mine_tool_ptr->m_stat_attendance);
-//    }
-//    else
-//    {
-//        log_info("收到web的删除卡命令,车卡考勤结束:卡id=%d,卡type=%d,stat_attendance=%d",
-//                 card_ptr->m_id, card_ptr->m_type,mine_tool_ptr->m_stat_attendance);
-//    }
-}
 

+ 2 - 2
module_service/area_business_car_attendance.h

@@ -21,8 +21,8 @@ public:
     void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
 
 //    static void init_attendance_area_from_db();
-    ///area_hover_ptr==nullptr 表示接收到 web的删除卡命令
-    static void save_attendance(const std::shared_ptr<card_location_base>& card_ptr, const std::shared_ptr<area_hover> area_hover_ptr);
+//    ///area_hover_ptr==nullptr 表示接收到 web的删除卡命令
+//    static void save_attendance(const std::shared_ptr<card_location_base>& card_ptr, const std::shared_ptr<area_hover> area_hover_ptr);
 
 //private:
 //    bool is_not_attendance_area(int area_id, int vehicle_type_id)

+ 5 - 13
module_service/area_business_card_enter_or_leave.cpp

@@ -11,7 +11,7 @@ struct enter_or_leave_data:business_data
 {
     enter_or_leave_data()
     {
-        m_enter_time_ms = tool_time::to_ms(std::chrono::system_clock::now());
+        m_enter_time_ms = tool_time::now_to_ms();
     }
 
     ///考勤开始时间
@@ -48,16 +48,12 @@ void area_business_card_enter_or_leave::on_leave(const std::shared_ptr<area_hove
 
 ///入库
 void area_business_card_enter_or_leave::save_his_area_location_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                                                     const std::shared_ptr<card_location_base> card_ptr,
+                                                                     const std::shared_ptr<card_location_base>&card_ptr,
                                                                      uint64_t start_time_ms)
 {
     char sql[LENGTH_SQL] = {0};
 
-    std::string call("add_area_staff");
-    if(card_ptr->is_vehicle())//车卡
-    {
-        call="add_area_vehicle";
-    }
+    std::string call(card_ptr->is_vehicle()?"add_area_vehicle":"add_area_staff");
 
     std::string start_str = tool_time::to_str_ex(start_time_ms);
 
@@ -70,16 +66,12 @@ void area_business_card_enter_or_leave::save_his_area_location_enter(const std::
 
 ///入库
 void area_business_card_enter_or_leave::save_his_area_location_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                                                     const std::shared_ptr<card_location_base> card_ptr,
+                                                                     const std::shared_ptr<card_location_base>&card_ptr,
                                                                      uint64_t start_time_ms)
 {
     char sql[LENGTH_SQL] = {0};
 
-    std::string call("add_area_staff");
-    if(card_ptr->is_vehicle())//车卡
-    {
-        call="add_area_vehicle";
-    }
+    std::string call(card_ptr->is_vehicle()?"add_area_vehicle":"add_area_staff");
 
     std::string start_str = tool_time::to_str_ex(start_time_ms);
     std::string end_str = tool_time::to_str_ex(tool_time::now_to_ms());

+ 2 - 2
module_service/area_business_card_enter_or_leave.h

@@ -18,12 +18,12 @@ struct area_business_card_enter_or_leave:area_business
 
     ///入库
     static void save_his_area_location_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                             const std::shared_ptr<card_location_base> card_ptr,
+                                             const std::shared_ptr<card_location_base>&card_ptr,
                                              uint64_t start_time_ms);
 
     ///入库
     static void save_his_area_location_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                             const std::shared_ptr<card_location_base> card_ptr,
+                                             const std::shared_ptr<card_location_base>&card_ptr,
                                              uint64_t start_time_ms);
 };
 

+ 58 - 14
module_service/area_business_geofault.cpp

@@ -10,6 +10,9 @@
 #include"common_tool.h"
 #include"log.h"
 #include"card.h"
+#include"config_file.h"
+#include"point.h"
+#include"area.h"
 
 struct geofault_data:business_data
 {
@@ -17,18 +20,25 @@ struct geofault_data:business_data
     {
         m_near_geofault_count=0;
         m_far_geofault_count=0;
+        m_is_warning=false;
     }
 
     int m_near_geofault_count;
     int m_far_geofault_count;
+    bool m_is_warning;
 };
 
 std::unordered_map<int, std::vector<point>> area_business_geofault::_area_geofault_map;
 int area_business_geofault::_geofault_count_limit;
 
 void area_business_geofault::on_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>& ptr)
+                                      const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>& ptr)
 {
+    if(!tool_other::is_coal_or_driving(card_ptr->m_type))
+    {
+        return;
+    }
+
     auto ptr_temp = std::make_shared<geofault_data>();
     ptr = ptr_temp;
 
@@ -37,20 +47,34 @@ void area_business_geofault::on_enter(const std::shared_ptr<area_hover>&area_hov
     {
         ptr_temp->m_near_geofault_count++;
     }
+    else
+    {
+        ptr_temp->m_far_geofault_count++;
+    }
+
+    auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_VEHICLE_NEAR_GEOFAULT);
+    ptr_temp->m_is_warning = (nullptr != ev_ptr_temp && !ev_ptr_temp->is_end());
 }
 
 void area_business_geofault::on_hover(const std::shared_ptr<area_hover>&area_hover_ptr,
                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
+    if(!tool_other::is_coal_or_driving(card_ptr->m_type))
+    {
+        return;
+    }
+
     auto ptr_temp = static_cast<geofault_data*>(ptr.get());
 
     double dist=0;
     if(_is_near(area_hover_ptr->m_area, card_ptr->x, card_ptr->y, dist))
     {
+        ptr_temp->m_far_geofault_count=0;
         ptr_temp->m_near_geofault_count++;
     }
     else
     {
+        ptr_temp->m_near_geofault_count=0;
         ptr_temp->m_far_geofault_count++;
     }
 
@@ -59,14 +83,13 @@ void area_business_geofault::on_hover(const std::shared_ptr<area_hover>&area_hov
     {
         ptr_temp->m_near_geofault_count=_geofault_count_limit;
 
-        auto ev_ptr = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_VEHICLE_NEAR_GEOFAULT);
-        if(!ev_ptr)//从没有告警状态转化为告警状态
+        if(!ptr_temp->m_is_warning)
         {
-            ptr_temp->m_far_geofault_count=0;
+            ptr_temp->m_is_warning = true;
+            uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+            event_tool::instance()->handle_event(OT_CARD, ET_VEHICLE_NEAR_GEOFAULT, id,
+                                                 CYaSetting::m_sys_setting.geofault_warn_dis, dist, true);
         }
-
-        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-        event_tool::instance()->handle_event(OT_CARD, ET_VEHICLE_NEAR_GEOFAULT, id, CYaSetting::m_sys_setting.geofault_warn_dis, dist, true);
     }
 
     //确定正常
@@ -74,25 +97,46 @@ void area_business_geofault::on_hover(const std::shared_ptr<area_hover>&area_hov
     {
         ptr_temp->m_far_geofault_count=_geofault_count_limit;
 
-        auto ev_ptr = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_VEHICLE_NEAR_GEOFAULT);
-        if(ev_ptr && !ev_ptr->is_end())
+        if(ptr_temp->m_is_warning)
         {
-            ptr_temp->m_near_geofault_count=0;
+            ptr_temp->m_is_warning = false;
 
             uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-            event_tool::instance()->handle_event(OT_CARD, ET_VEHICLE_NEAR_GEOFAULT, id, CYaSetting::m_sys_setting.geofault_warn_dis, dist, false);
+            event_tool::instance()->handle_event(OT_CARD, ET_VEHICLE_NEAR_GEOFAULT, id,
+                                                 CYaSetting::m_sys_setting.geofault_warn_dis, dist, false);
         }
     }
 }
 
-
 void area_business_geofault::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
                                       const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
+    if(!tool_other::is_coal_or_driving(card_ptr->m_type))
+    {
+        return;
+    }
+
     uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
     event_tool::instance()->handle_event(OT_CARD, ET_VEHICLE_NEAR_GEOFAULT, id, CYaSetting::m_sys_setting.geofault_warn_dis, 1000, false);
 }
 
+void area_business_geofault::init(config_file& config)
+{
+    _geofault_count_limit = std::stoi(config.get("service.geofault_count_limit","10"));
+}
+
+std::string area_business_geofault::_points2str(std::vector<point>& points)
+{
+    std::string str;
+    for(auto&p : points)
+    {
+        char ch[64] = {0};
+        sprintf(ch, "x=%f,y=%f;", p.x, p.y);
+        str.append(ch);
+    }
+
+    return str;
+}
 
 void area_business_geofault::init_geofault_from_db()
 {
@@ -148,8 +192,8 @@ void area_business_geofault::init_geofault_from_db()
     for(const auto &p : _area_geofault_map)
     {
         auto kk = p.second;
-        std_debug("init_geofault_from_db:area_id:%d--points: %s",p.first, points2str(kk).c_str());
-        log_info("init_geofault_from_db:area_id:%d--points: %s",p.first, points2str(kk).c_str());
+        std_debug("init_geofault_from_db:area_id:%d--points: %s",p.first, _points2str(kk).c_str());
+        log_info("init_geofault_from_db:area_id:%d--points: %s",p.first, _points2str(kk).c_str());
     }
 }
 

+ 7 - 21
module_service/area_business_geofault.h

@@ -7,13 +7,13 @@
  * @date 2019-01-15
  */
 
-#include<area_business.h>
+#include"area_business.h"
 #include <unordered_map>
 #include<vector>
-#include<area.h>
-#include<point.h>
 
-#include"config_file.h"
+struct config_file;
+struct point;
+struct area;
 
 /**
  * @brief 当采煤机和掘进机有数据点过来的时候,判断当前点与地址断层坐标点的距离d。如d<设置的阈值,则告警,d>阈值则取消。
@@ -23,17 +23,14 @@ class area_business_geofault:public area_business
 public:
     int area_business_type()
     {
-        return 10;
+        return 11;
     }
 
     void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
     void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
     void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
 
-    static void init(config_file& config)
-    {
-        _geofault_count_limit = std::stoi(config.get("service.geofault_count_limit","10"));
-    }
+    static void init(config_file& config);
 
     static void init_geofault_from_db();
 
@@ -69,18 +66,7 @@ private:
         return arr;
     }
 
-    static std::string points2str(std::vector<point>& points)
-    {
-        std::string str;
-        for(auto&p : points)
-        {
-            char ch[64] = {0};
-            sprintf(ch, "x=%f,y=%f;", p.x, p.y);
-            str.append(ch);
-        }
-
-        return str;
-    }
+    static std::string _points2str(std::vector<point>& points);
 
 private:
     //area_id: points

+ 63 - 17
module_service/area_business_motionless_persion.cpp

@@ -8,38 +8,63 @@
 #include"tool_time.h"
 #include"area_business.h"
 #include"card.h"
+#include"config_file.h"
 
 
 struct motionless_data:business_data
 {
     motionless_data()
+        :m_acc_0count(0)
+        ,m_is_warning(false)
     {
-        m_acc_0count=0;
-//        m_acc_start_time=0;
+        //        m_acc_0count=0;
+        //        m_acc_start_time=0;
     }
 
     ///;检测到多少次之后定位完全静止
-    std::atomic<int> m_acc_0count;
-//    ///检测到多久之后告警
-//    time_t m_acc_start_time;
+    //   std::atomic<int> m_acc_0count;
+    //    ///检测到多久之后告警
+    //    time_t m_acc_start_time;
+
+    int m_acc_0count; //连续静止数量
+    bool m_is_warning;  //
 };
 
-int area_business_motionless_persion::_acc_0count_limit;
+void area_business_motionless_persion::init(config_file& config)
+{
+    //       sleep_ms = std::stoi(config.get("service.motionless_thread_sleep_ms","5000"));
+    _acc_0count_limit = std::stoi(config.get("service.motionless_acc_0count_limit","40"));
+    //        _acc_seconds_limit = std::stoi(config.get("service.motionless_acc_seconds_limit","120"));
+}
 
 void area_business_motionless_persion::on_enter(const std::shared_ptr<area_hover>&a,
-                                 const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
+                                                const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
 {
+    if(!card_ptr->is_person())
+    {
+        return;
+    }
+
     auto ptr_temp = std::make_shared<motionless_data>();
     ptr = ptr_temp;
+
+    auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ET_CARD_MOTIONLESS);
+    ptr_temp->m_is_warning = (nullptr != ev_ptr_temp && !ev_ptr_temp->is_end());
 }
 
 void area_business_motionless_persion::on_hover(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                         const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
+                                                const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
+    if(!card_ptr->is_person())
+    {
+        return;
+    }
+
     auto ptr_temp = static_cast<motionless_data*>(ptr.get());
+
     if(0 == static_cast<int>(card_ptr->m_acc))
     {
-        ptr_temp->m_acc_0count++;
+        ++ptr_temp->m_acc_0count;
     }
     else
     {
@@ -49,21 +74,42 @@ void area_business_motionless_persion::on_hover(const std::shared_ptr<area_hover
     if(ptr_temp->m_acc_0count >= _acc_0count_limit)
     {
         ptr_temp->m_acc_0count = _acc_0count_limit;
+        if(!ptr_temp->m_is_warning)
+        {
+            ptr_temp->m_is_warning = true;
+            uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+            event_tool::instance()->handle_event(OT_CARD, ET_CARD_MOTIONLESS, id, 0, 0, true);
+        }
+    }
+    else
+    {
+        if(ptr_temp->m_is_warning)
+        {
+            ptr_temp->m_is_warning = false;
+            uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+            event_tool::instance()->handle_event(OT_CARD, ET_CARD_MOTIONLESS, id, 0, 0, false);
+        }
     }
-
-    bool is_alarm = ptr_temp->m_acc_0count >= _acc_0count_limit;
-
-    uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-    event_tool::instance()->handle_event(OT_CARD, ET_CARD_MOTIONLESS, id, 0, 0, is_alarm);
 }
 
 void area_business_motionless_persion::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
-                                         const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
+                                                const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
-    uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-    event_tool::instance()->handle_event(OT_CARD, ET_CARD_MOTIONLESS, id, 0, 0, false);
+    if(!card_ptr->is_person())
+    {
+        return;
+    }
+
+    auto ptr_temp = static_cast<motionless_data*>(ptr.get());
+    if(ptr_temp->m_is_warning)//如果正在告警,则发送取消告警的信息
+    {
+        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+        event_tool::instance()->handle_event(OT_CARD, ET_CARD_MOTIONLESS, id, 0, 0, false);
+    }
 }
 
+int area_business_motionless_persion::_acc_0count_limit=20;
+
 //void module_motionless_persion::deal_alarm(std::shared_ptr<card_location_base>& card_ptr)
 //{
 //    auto area_hover_ptr = card_ptr->get_area_hover();

+ 14 - 21
module_service/area_business_motionless_persion.h

@@ -11,8 +11,8 @@
 //#include"module_i_thread.h"
 //#include"card.h"
 #include"area_business.h"
-#include"config_file.h"
 
+struct config_file;
 /**
  * @brief 一、硬件输出的状态
 当完全静止时人卡会连续发送 30 次定位数据,在该定位数据中的加速度状态为 0;发送
@@ -26,37 +26,30 @@
  */
 class area_business_motionless_persion : public area_business// : public i_thread, public singleton_base<module_motionless_persion>
 {
-//    void run()
-//    {
-//        auto cardlist = card_list::instance()->m_map;
-//        auto iter_m_map=cardlist.begin();
-//        for(;iter_m_map!=cardlist.end();++iter_m_map)
-//        {
-//            deal_alarm(iter_m_map->second);
-//        }
-//    }
-
-//    void deal_alarm(std::shared_ptr<card_location_base>& card_ptr);
+    //    void run()
+    //    {
+    //        auto cardlist = card_list::instance()->m_map;
+    //        auto iter_m_map=cardlist.begin();
+    //        for(;iter_m_map!=cardlist.end();++iter_m_map)
+    //        {
+    //            deal_alarm(iter_m_map->second);
+    //        }
+    //    }
+
+    //    void deal_alarm(std::shared_ptr<card_location_base>& card_ptr);
 private:
     static int _acc_0count_limit;
 
 public:
     int area_business_type()
     {
-        return 5;
-    }
-
-    static void init(config_file& config)
-    {
- //       sleep_ms = std::stoi(config.get("service.motionless_thread_sleep_ms","5000"));
-        _acc_0count_limit = std::stoi(config.get("service.motionless_acc_0count_limit","40"));
-//        _acc_seconds_limit = std::stoi(config.get("service.motionless_acc_seconds_limit","120"));
+        return 10;
     }
+    static void init(config_file& config);
 
     void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
     void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
     void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
-
 };
 
 #endif // MODULE_MOTIONLESS_PERSION_H

+ 115 - 76
module_service/area_business_person_attendance.cpp

@@ -31,8 +31,8 @@ area_business_person_attendance::area_business_person_attendance()
 
 
 //记录进入时间等信息,结束考勤,根据离开的时间和距离,判断是否记录一条新的考勤记录
-void area_business_person_attendance::on_enter(const std::shared_ptr<area_hover>&a,
-                                            const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
+void area_business_person_attendance::on_enter(const std::shared_ptr<area_hover>&area_hover_ptr,
+                                               const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)
 {
     if(!card_ptr->is_person())
     {
@@ -47,21 +47,21 @@ void area_business_person_attendance::on_enter(const std::shared_ptr<area_hover>
         mine_tool_ptr->m_attendance_start_time=std::chrono::system_clock::now();
 
         //作为一条开始考勤记录保存到数据库
-        db_tool::save_attendance(card_ptr);
+        db_tool::save_attendance(card_ptr, area_hover_ptr);
 
-//        log_info("人卡考勤开始:卡id=%d,卡type=%d,分站id=%d,分站reader_type_id=%d,stat_attendance=%d",
-//                 card_ptr->m_id, card_ptr->m_type,
-//                 site_ptr->m_id,site_ptr->m_reader_type_id,mine_tool_ptr->m_is_attendance);
+        //        log_info("人卡考勤开始:卡id=%d,卡type=%d,分站id=%d,分站reader_type_id=%d,stat_attendance=%d",
+        //                 card_ptr->m_id, card_ptr->m_type,
+        //                 site_ptr->m_id,site_ptr->m_reader_type_id,mine_tool_ptr->m_is_attendance);
     }
 
-//    auto ptr_temp = std::make_shared<person_attendance_data>();
-//    ptr = ptr_temp;
+    //    auto ptr_temp = std::make_shared<person_attendance_data>();
+    //    ptr = ptr_temp;
 
-//    ptr_temp->m_is_attendance = true;
-//    ptr_temp->m_attendance_start_time = std::chrono::system_clock::now();
+    //    ptr_temp->m_is_attendance = true;
+    //    ptr_temp->m_attendance_start_time = std::chrono::system_clock::now();
 
-//    //作为一条开始考勤记录保存到数据库
-//    db_tool::save_attendance(card_ptr, ptr_temp->m_is_attendance, ptr_temp->m_attendance_start_time);
+    //    //作为一条开始考勤记录保存到数据库
+    //    db_tool::save_attendance(card_ptr, ptr_temp->m_is_attendance, ptr_temp->m_attendance_start_time);
 }
 
 void area_business_person_attendance::on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
@@ -69,37 +69,14 @@ void area_business_person_attendance::on_hover(const std::shared_ptr<area_hover>
 
 }
 //记录离开考勤区域信息,开始考勤
-void area_business_person_attendance::on_leave(const std::shared_ptr<area_hover>&a,
-                                            const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
+void area_business_person_attendance::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,
+                                               const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
     if(!card_ptr->is_person())
     {
         return;
     }
 
-    up_mine(card_ptr, false);
-
-//    if(nullptr == ptr)
-//    {
-//        log_error("结束考勤失败:nullptr == ptr");
-//        return;
-//    }
-
-//    auto ptr_temp = static_cast<person_attendance_data*>(ptr.get());
-
-//    if(ptr_temp->m_is_attendance)
-//    {
-//        ptr_temp->m_is_attendance = false;
-
-//        //作为一条开始考勤记录保存到数据库
-//        db_tool::save_attendance(card_ptr, ptr_temp->m_is_attendance, ptr_temp->m_attendance_start_time);
-//    }
-}
-
-///升井或收到web的删除卡命令  site_ptr==nullptr表示收到web的删除卡命令
-/// 保存考勤记录,发升井json,清理卡
-void area_business_person_attendance::up_mine(std::shared_ptr<card_location_base> card_ptr, bool is_web_delete)
-{
     auto mine_tool_ptr = card_ptr->get_mine_tool();
     if(!mine_tool_ptr->m_is_attendance)
     {
@@ -110,7 +87,7 @@ void area_business_person_attendance::up_mine(std::shared_ptr<card_location_base
     mine_tool_ptr->m_is_attendance=false;
 
     //作为一条结束考勤记录保存到数据库
-    db_tool::save_attendance(card_ptr);
+    db_tool::save_attendance(card_ptr, area_hover_ptr);
 
     rapidjson::Document doc(rapidjson::kObjectType);
     rapidjson::Value datas(rapidjson::kArrayType);
@@ -119,9 +96,9 @@ void area_business_person_attendance::up_mine(std::shared_ptr<card_location_base
     _to_json_card_up_one(card_ptr, datas, allocator);
     //module_meta_date_changed::clear_card(card_ptr);
 
-    auto rea_tool = card_ptr->get_area_tool();
-    rea_tool->on_leave(card_ptr);
-    card_ptr->clear();
+    //    auto rea_tool = card_ptr->get_area_tool();
+    //    rea_tool->on_leave(card_ptr);
+    //    card_ptr->clear();
 
     //升井json发给web
     if(datas.Size() > 0)
@@ -133,17 +110,23 @@ void area_business_person_attendance::up_mine(std::shared_ptr<card_location_base
         swsClientMgr.send(JSON_CMD_VALUE_PUSH, tool_json::doc_to_json(doc));
     }
 
-//    if(is_web_delete)
-//    {
-//        log_info("人卡考勤结束:卡id=%d,卡type=%d,分站id=%d,分站reader_type_id=%d,stat_attendance=%d",
-//                 card_ptr->m_id, card_ptr->m_type,
-//                 site_ptr->m_id,site_ptr->m_reader_type_id,mine_tool_ptr->m_is_attendance);
-//    }
-//    else
-//    {
-//        log_info("收到web的删除卡命令,人卡考勤结束:卡id=%d,卡type=%d, stat_attendance=%d",
-//                 card_ptr->m_id, card_ptr->m_type, mine_tool_ptr->m_is_attendance);
-//    }
+    //up_mine(card_ptr, false);
+
+    //    if(nullptr == ptr)
+    //    {
+    //        log_error("结束考勤失败:nullptr == ptr");
+    //        return;
+    //    }
+
+    //    auto ptr_temp = static_cast<person_attendance_data*>(ptr.get());
+
+    //    if(ptr_temp->m_is_attendance)
+    //    {
+    //        ptr_temp->m_is_attendance = false;
+
+    //        //作为一条开始考勤记录保存到数据库
+    //        db_tool::save_attendance(card_ptr, ptr_temp->m_is_attendance, ptr_temp->m_attendance_start_time);
+    //    }
 }
 
 /**
@@ -158,9 +141,9 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
         return;
     }
 
-    rapidjson::Document doc(rapidjson::kObjectType);
-    rapidjson::Value datas(rapidjson::kArrayType);
-    rapidjson::Document::AllocatorType& allocator=doc.GetAllocator();
+//    rapidjson::Document doc(rapidjson::kObjectType);
+//    rapidjson::Value datas(rapidjson::kArrayType);
+//    rapidjson::Document::AllocatorType& allocator=doc.GetAllocator();
 
     std::vector<sio::message::ptr>::const_iterator it_card = card_vec.begin();
     int type = 0;
@@ -168,7 +151,7 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
     for(; it_card != card_vec.end(); ++it_card)
     {
         if(!tool_map::try_get_value(s_card_id, JSON_KEY_CALL_CARD_CARD_ID, (*it_card))
-           ||!tool_map::try_get_value(type, JSON_KEY_CALL_CARD_CARD_TYPE_ID, (*it_card)))
+                ||!tool_map::try_get_value(type, JSON_KEY_CALL_CARD_CARD_TYPE_ID, (*it_card)))
         {
             log_error("手工升井,web发来的数据 card_id 或 card_type格式不对");
             continue;
@@ -181,22 +164,27 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
             std_debug("手工升井,处理,卡id=%d,卡type=%d", id, type);
             log_info("手工升井,处理,卡id=%d,卡type=%d", id, type);
 
-            auto mine_tool_ptr = card_ptr->get_mine_tool();
-            if(mine_tool_ptr->m_is_attendance)
-            {
-                //考勤结束
-                mine_tool_ptr->m_is_attendance=false;
+            module_meta_date_changed::clear_card(card_ptr);
+            //            auto rea_tool = card_ptr->get_area_tool();
+            //            rea_tool->on_leave(card_ptr);
+            //card_ptr->clear();
+
+            //            auto mine_tool_ptr = card_ptr->get_mine_tool();
+            //            if(mine_tool_ptr->m_is_attendance)
+            //            {
+            //                //考勤结束
+            //                mine_tool_ptr->m_is_attendance=false;
 
-                //作为一条结束考勤记录保存到数据库
-                db_tool::save_attendance(card_ptr);
-            }
+            //                //作为一条结束考勤记录保存到数据库
+            //                db_tool::save_attendance(card_ptr);
+            //            }
 
             //检查井下是否超员--是否需要取消
             //CMineCardManager::instance()->OnPersonUp(card_ptr);
 
-            auto rea_tool = card_ptr->get_area_tool();
-			rea_tool->on_leave(card_ptr);
-			card_ptr->clear();
+            //            auto rea_tool = card_ptr->get_area_tool();
+            //			rea_tool->on_leave(card_ptr);
+            //			card_ptr->clear();
         }
         else
         {
@@ -204,20 +192,20 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
         }
     }
 
-    //升井json发给web
-    if(datas.Size() > 0)
-    {
-        doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_UP_MINE, allocator);
-        //doc.AddMember(JSON_ROOT_KEY_VERSION,INTERFACE_VERSION, allocator);
-        doc.AddMember(JSON_ROOT_KEY_DATA, datas, allocator);
+//    //升井json发给web
+//    if(datas.Size() > 0)
+//    {
+//        doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_UP_MINE, allocator);
+//        //doc.AddMember(JSON_ROOT_KEY_VERSION,INTERFACE_VERSION, allocator);
+//        doc.AddMember(JSON_ROOT_KEY_DATA, datas, allocator);
 
-        swsClientMgr.send(JSON_CMD_VALUE_PUSH, tool_json::doc_to_json(doc));
-    }
+//        swsClientMgr.send(JSON_CMD_VALUE_PUSH, tool_json::doc_to_json(doc));
+//    }
 }
 
 ///升井json
 void area_business_person_attendance::_to_json_card_up_one(std::shared_ptr<card_location_base> card_ptr,
-                                   rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator)
+                                                           rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator)
 {
     if(!card_ptr->m_display)
     {
@@ -268,3 +256,54 @@ void area_business_person_attendance::_to_json_card_up_one(std::shared_ptr<card_
     out_datas.PushBack(data, allocator);
 }
 
+
+/////升井或收到web的删除卡命令  site_ptr==nullptr表示收到web的删除卡命令
+///// 保存考勤记录,发升井json,清理卡
+//void area_business_person_attendance::up_mine(std::shared_ptr<card_location_base> card_ptr, bool is_web_delete)
+//{
+//    auto mine_tool_ptr = card_ptr->get_mine_tool();
+//    if(!mine_tool_ptr->m_is_attendance)
+//    {
+//        return;
+//    }
+
+//    //考勤结束
+//    mine_tool_ptr->m_is_attendance=false;
+
+//    //作为一条结束考勤记录保存到数据库
+//    db_tool::save_attendance(card_ptr);
+
+//    rapidjson::Document doc(rapidjson::kObjectType);
+//    rapidjson::Value datas(rapidjson::kArrayType);
+//    rapidjson::Document::AllocatorType& allocator=doc.GetAllocator();
+
+//    _to_json_card_up_one(card_ptr, datas, allocator);
+//    //module_meta_date_changed::clear_card(card_ptr);
+
+//    auto rea_tool = card_ptr->get_area_tool();
+//    rea_tool->on_leave(card_ptr);
+//    card_ptr->clear();
+
+//    //升井json发给web
+//    if(datas.Size() > 0)
+//    {
+//        doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_UP_MINE, allocator);
+//        //doc.AddMember(JSON_ROOT_KEY_VERSION,INTERFACE_VERSION, allocator);
+//        doc.AddMember(JSON_ROOT_KEY_DATA, datas, allocator);
+
+//        swsClientMgr.send(JSON_CMD_VALUE_PUSH, tool_json::doc_to_json(doc));
+//    }
+
+////    if(is_web_delete)
+////    {
+////        log_info("人卡考勤结束:卡id=%d,卡type=%d,分站id=%d,分站reader_type_id=%d,stat_attendance=%d",
+////                 card_ptr->m_id, card_ptr->m_type,
+////                 site_ptr->m_id,site_ptr->m_reader_type_id,mine_tool_ptr->m_is_attendance);
+////    }
+////    else
+////    {
+////        log_info("收到web的删除卡命令,人卡考勤结束:卡id=%d,卡type=%d, stat_attendance=%d",
+////                 card_ptr->m_id, card_ptr->m_type, mine_tool_ptr->m_is_attendance);
+////    }
+//}
+

+ 4 - 4
module_service/area_business_person_attendance.h

@@ -24,9 +24,9 @@ struct area_business_person_attendance:area_business
     //记录离开考勤区域信息,结束考勤
     void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
 
-    ///升井或收到web的删除卡命令  site_ptr==nullptr表示收到web的删除卡命令
-    /// 保存考勤记录,发升井json,清理卡
-    static void up_mine(std::shared_ptr<card_location_base> card_ptr, bool is_web_delete);
+    //    ///升井或收到web的删除卡命令  site_ptr==nullptr表示收到web的删除卡命令
+    //    /// 保存考勤记录,发升井json,清理卡
+    //    static void up_mine(std::shared_ptr<card_location_base> card_ptr, bool is_web_delete);
 
     /**
      * @brief 手工升井函数
@@ -36,7 +36,7 @@ struct area_business_person_attendance:area_business
 private:
     ///升井json
     static void _to_json_card_up_one(std::shared_ptr<card_location_base> card_ptr,
-                                       rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator);
+                                     rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator);
 };
 
 

+ 23 - 12
module_service/area_business_speed_checker.cpp

@@ -17,11 +17,13 @@ struct over_speed_data:business_data
         m_over_speed_count=0;
         m_normal_speed_count=0;
         m_limit_speed=0;
+        m_is_warning=false;
     }
 
     int m_over_speed_count;
     int m_normal_speed_count;
     double m_limit_speed;
+    bool m_is_warning;
 };
 
 area_business_speed_checker::area_business_speed_checker()
@@ -55,6 +57,18 @@ void area_business_speed_checker::on_enter(const std::shared_ptr<area_hover>&are
     {
         ptr_temp->m_over_speed_count++;
     }
+    else
+    {
+        ptr_temp->m_normal_speed_count++;
+    }
+
+    EVENT_TYPE ev_type = ET_CARD_AREA_OVER_SPEED;
+    if(area_hover_ptr->m_area->is_mine())
+    {
+        ev_type = ET_CARD_OVER_SPEED;
+    }
+    auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ev_type);
+    ptr_temp->m_is_warning = (nullptr != ev_ptr_temp && !ev_ptr_temp->is_end());
 }
 
 void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&area_hover_ptr,
@@ -75,10 +89,12 @@ void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&are
     if(limit < card_ptr->m_speed)//超速
     {
         ptr_temp->m_over_speed_count++;
+        ptr_temp->m_normal_speed_count=0;
     }
     else//速度正常
     {
         ptr_temp->m_normal_speed_count++;
+        ptr_temp->m_over_speed_count=0;
     }
 
     EVENT_TYPE ev_type = ET_CARD_AREA_OVER_SPEED;
@@ -92,14 +108,13 @@ void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&are
     {
         ptr_temp->m_over_speed_count=SPEED_COUNT_LIMIT;
 
-        auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ev_type);
-        if(!ev_ptr_temp)//从没有告警状态转化为告警状态
+        if(!ptr_temp->m_is_warning)
         {
-            ptr_temp->m_normal_speed_count=0;
-        }
+            ptr_temp->m_is_warning = true;
 
-        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-        event_tool::instance()->handle_event(OT_CARD, ev_type, id, limit, card_ptr->m_speed, true);
+            uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+            event_tool::instance()->handle_event(OT_CARD, ev_type, id, limit, card_ptr->m_speed, true);
+        }
     }
 
     //确定正常
@@ -107,10 +122,9 @@ void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&are
     {
         ptr_temp->m_normal_speed_count=SPEED_COUNT_LIMIT;
 
-        auto ev_ptr_temp = event_list::instance()->get_event_card(card_ptr->m_id, card_ptr->m_type, ev_type);
-        if(ev_ptr_temp && !ev_ptr_temp->is_end())
+        if(ptr_temp->m_is_warning)
         {
-            ptr_temp->m_over_speed_count=0;
+            ptr_temp->m_is_warning=false;
 
             uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
             event_tool::instance()->handle_event(OT_CARD, ev_type, id, limit, card_ptr->m_speed, false);
@@ -172,7 +186,4 @@ void area_business_speed_checker::init_vehicle_category_from_db()
         std_debug("dat_vehicle_category:category_id:%d--over_speed:%.2f",p.first,p.second);
 }
 
-//std::unordered_map<int,double> area_business_speed_checker::_vehicle_category_map;
-
-
 

+ 6 - 6
module_service/area_business_work_rate.cpp

@@ -29,12 +29,12 @@ void area_business_work_rate::on_enter(const std::shared_ptr<area_hover>&area_ho
     auto card = std::make_shared<card_pos>();
     card->id = card_ptr->m_id;
     card->type = card_ptr->m_type;
-    //card->work_line =
-    //card->identifier_id
+    card->work_line = card_ptr->get_workline();
+    card->identifier_id = card_ptr->m_cid;
 
     auto area = std::make_shared<area_data>();
     area->area_id = area_hover_ptr->id();
-    //area->is_work_area = area_hover_ptr->m_area->
+    area->is_work_area = area_hover_ptr->m_area->m_is_work_area;
     area->enter_time = tool_time::now_to_seconds();
 
     three_rates::get_instance()->enter_area(card, area);
@@ -57,12 +57,12 @@ void area_business_work_rate::on_leave(const std::shared_ptr<area_hover>&area_ho
     auto card = std::make_shared<card_pos>();
     card->id = card_ptr->m_id;
     card->type = card_ptr->m_type;
-    //card->work_line =
-    //card->identifier_id
+    card->work_line = card_ptr->get_workline();
+    card->identifier_id = card_ptr->m_cid;
 
     auto area = std::make_shared<area_data>();
     area->area_id = area_hover_ptr->id();
-    //area->is_work_area = area_hover_ptr->m_area->
+    area->is_work_area = area_hover_ptr->m_area->m_is_work_area;
     area->leave_time = tool_time::now_to_seconds();
 
     three_rates::get_instance()->leave_area(card, area);

+ 1 - 1
module_service/area_business_work_rate.h

@@ -11,7 +11,7 @@ class area_business_work_rate:public area_business
 public:
     int area_business_type()
     {
-        return 13;
+        return 12;
     }
 
     void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);

+ 1 - 1
module_service/module_call.h

@@ -196,7 +196,7 @@ public:
      */
     void init(config_file& config)
     {
-        sleep_ms = std::stoi(config.get("service.send_call_interval","5000"));
+        sleep_ms = std::stoi(config.get("service.send_call_interval_ms","5000"));
     }
 
 private:

+ 37 - 38
module_service/module_meta_date_changed.cpp

@@ -9,6 +9,7 @@
 
 #include"ant.h"
 #include"card.h"
+#include"area.h"
 
 
 ///基础数据
@@ -103,34 +104,32 @@ void module_meta_date_changed::clear_card(std::shared_ptr<card_location_base> ca
 {
     auto rea_tool = card_ptr->get_area_tool();
     rea_tool->on_leave(card_ptr);
-    card_ptr->clear();
+    //card_ptr->clear();
 
-//    //删除
-//    //card_ptr->del_card_pos();
-//    // 升井 删除所有报警信息
-//    for(int i=0; i < CARD_EVENT_COUNT_MAX; i++ )
-//    {
-//        if (i == EVENT_TYPE::ET_CARD_LOW_POWER_SERIOUS)
-//        {
-//            continue;
-//        }
-
-//        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-//        event_tool::instance()->handle_event(OT_CARD, static_cast<EVENT_TYPE>(i), id, 0, 0, false);
-
-////        auto ev_ptr = event_list::instance()->get_event_card(
-////                card_ptr->m_id, card_ptr->m_type, static_cast<EVENT_TYPE>(i));
-////        if(ev_ptr && !ev_ptr->is_end()) //
-////        {
-////            event_list::copy_event(card_ptr, ev_ptr);
+    //    //删除
+    //    //card_ptr->del_card_pos();
+    // 升井 删除所有报警信息
+    for(int i=0; i < CARD_EVENT_COUNT_MAX; i++ )
+    {
+        if (i == EVENT_TYPE::ET_CARD_LOW_POWER_SERIOUS)
+        {
+            continue;
+        }
 
-////            ev_ptr->m_status = ES_END;
+        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
+        event_tool::instance()->handle_event(OT_CARD, static_cast<EVENT_TYPE>(i), id, 0, 0, false);
 
-////            event_list::save_event(ev_ptr);
-////        }
-//    }
+        //        auto ev_ptr = event_list::instance()->get_event_card(
+        //                card_ptr->m_id, card_ptr->m_type, static_cast<EVENT_TYPE>(i));
+        //        if(ev_ptr && !ev_ptr->is_end()) //
+        //        {
+        //            event_list::copy_event(card_ptr, ev_ptr);
 
+        //            ev_ptr->m_status = ES_END;
 
+        //            event_list::save_event(ev_ptr);
+        //        }
+    }
 }
 
 
@@ -302,7 +301,7 @@ void module_meta_date_changed::deal_call_edit_lights_group(int id, EDIT_TYPE_ID
 
 void module_meta_date_changed::init_setting()
 {
-//pRes = getMysqlRes("select setting_id, name, type, value from dat_setting;");
+    //pRes = getMysqlRes("select setting_id, name, type, value from dat_setting;");
 }
 
 void module_meta_date_changed::remove_card(uint32_t id, int32_t type)
@@ -315,22 +314,22 @@ void module_meta_date_changed::remove_card(uint32_t id, int32_t type)
         return;
     }
 
-//    auto area_hover_ptr = card_ptr->get_area_hover();
-//    if(area_hover_ptr && 0!=area_hover_ptr->id() && 0!=area_hover_ptr->mapid())
-//    {
-//        module_area::on_leave(card_ptr->m_id, area_hover_ptr, card_ptr->m_type);
-//    }
+    //    auto area_hover_ptr = card_ptr->get_area_hover();
+    //    if(area_hover_ptr && 0!=area_hover_ptr->id() && 0!=area_hover_ptr->mapid())
+    //    {
+    //        module_area::on_leave(card_ptr->m_id, area_hover_ptr, card_ptr->m_type);
+    //    }
 
-//    if(card_ptr->is_person())
-//    {
-//        module_attendance_person::up_mine(card_ptr, nullptr);
-//    }
-//    else
-//    {
-//        module_attendance_vehicle::save_attendance(card_ptr, nullptr);
+    //    if(card_ptr->is_person())
+    //    {
+    //        module_attendance_person::up_mine(card_ptr, nullptr);
+    //    }
+    //    else
+    //    {
+    //        module_attendance_vehicle::save_attendance(card_ptr, nullptr);
 
-//        module_meta_date_changed::clear_card(card_ptr);
-//    }
+    //        module_meta_date_changed::clear_card(card_ptr);
+    //    }
 
     module_meta_date_changed::clear_card(card_ptr);
     // 避免状态重置

+ 3 - 2
module_service/module_meta_date_changed.h

@@ -8,8 +8,9 @@
 
 #include"module_singleton_base.h"
 #include"websocket/sio/sio_client.h"
-//#include"card.h"
-#include"area.h"
+
+struct card_location_base;
+struct area;
 
 
 enum EDIT_TYPE_ID

+ 1 - 0
module_service/module_mgr.cpp

@@ -11,6 +11,7 @@
 #include"area_business_geofault.h"
 #include"log.h"
 #include"common_tool.h"
+#include "config_file.h"
 
 /**
  * @brief 注册web回调函数,读配置文件,启动向web发送线程

+ 1 - 1
module_service/module_mgr.h

@@ -11,9 +11,9 @@
  */
 
 #include "module_singleton_base.h"
-#include "config_file.h"
 #include "websocket/wsClientMgr.h"
 #include "common.h"
+struct config_file;
 
 class module_mgr: public singleton_base<module_mgr>
 {

+ 32 - 3
module_service/module_web.cpp

@@ -5,6 +5,7 @@
 #include"area_business_person_attendance.h"
 #include"module_meta_date_changed.h"
 #include"common_tool.h"
+#include"event.h"
 
 #include"log.h"
 
@@ -77,7 +78,7 @@ void module_web::response_login()
 
     //所有告警
     std::vector<std::shared_ptr<ya_event>> arr;
-    get_all_events(arr);
+    _get_all_events(arr);
     if(!arr.empty())
     {
         tool_json::push_back(nodes, event_list::evs_to_json(arr), allocator);
@@ -96,11 +97,11 @@ void module_web::response_login()
 void module_web::run()
 {
     std::vector<std::shared_ptr<ya_event>> arr;
-    get_all_events(arr);
+    _get_all_events(arr);
 
     if(!arr.empty())//发送给web端
     {
-        delete_end(arr);
+        _delete_end(arr);
 
         swsClientMgr.send(JSON_CMD_VALUE_PUSH, event_list::evs_to_json(arr));
     }
@@ -112,6 +113,34 @@ void module_web::run()
     }
 }
 
+void module_web::_get_all_events(std::vector<std::shared_ptr<ya_event>>& arr)
+{
+    auto _map = event_list::instance()->m_map;
+    auto it_map = _map.begin();
+    for(;it_map!=_map.end();++it_map)
+    {
+        arr.push_back(it_map->second);
+    }
+}
+
+///在全局列表中删除已经处理或结束了的告警
+void module_web::_delete_end(std::vector<std::shared_ptr<ya_event>>& arr)
+{
+    std::vector<uint64_t> todelete;
+    auto arr_iter = arr.begin();
+    for(;arr_iter!=arr.end();++arr_iter)
+    {
+        if((*arr_iter)->is_end())//删除掉已经处理的
+        {
+            todelete.push_back((*arr_iter)->get_list_id());
+        }
+    }
+
+    if(todelete.size())
+    {
+        event_list::instance()->remove(todelete);
+    }
+}
 
 
 

+ 6 - 28
module_service/module_web.h

@@ -14,11 +14,13 @@
 #include "rapidjson/document.h"
 
 #include"config_file.h"
-#include"event.h"
+
 #include"module_singleton_base.h"
 #include"module_i_thread.h"
 #include "websocket/wsClientMgr.h"
 
+struct ya_event;
+
 class module_web : public i_thread, public singleton_base<module_web>
 {
 private:
@@ -45,7 +47,7 @@ public:
      */
     void init(config_file& config, std::map<std::string, YA::MSG_HANDLE_FUNC_TYPE>& MsgFuncList)
     {
-        sleep_ms = std::stoi(config.get("service.interval_send_json_alarm","10000"));
+        sleep_ms = std::stoi(config.get("service.interval_send_json_alarm_ms","10000"));
 
         MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_META_DATA_CHANGED, &module_web::accept ) );
         MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_REQUEST_ALL_DATA, &module_web::accept ) );
@@ -66,34 +68,10 @@ private:
     void run();
 
     ///获取所有的告警事件
-    void get_all_events(std::vector<std::shared_ptr<ya_event>>& arr)
-    {
-        auto _map = event_list::instance()->m_map;
-        auto it_map = _map.begin();
-        for(;it_map!=_map.end();++it_map)
-        {
-            arr.push_back(it_map->second);
-        }
-    }
+    void _get_all_events(std::vector<std::shared_ptr<ya_event>>& arr);
 
     ///在全局列表中删除已经处理或结束了的告警
-    void delete_end(std::vector<std::shared_ptr<ya_event>>& arr)
-    {
-        std::vector<uint64_t> todelete;
-        auto arr_iter = arr.begin();
-        for(;arr_iter!=arr.end();++arr_iter)
-        {
-            if((*arr_iter)->is_end())//删除掉已经处理的
-            {
-                todelete.push_back((*arr_iter)->get_list_id());
-            }
-        }
-
-        if(todelete.size())
-        {
-            event_list::instance()->remove(todelete);
-        }
-    }
+    void _delete_end(std::vector<std::shared_ptr<ya_event>>& arr);
 };
 
 

+ 0 - 338
ya_event.h

@@ -1,338 +0,0 @@
-#ifndef YA_EVENT_H
-#define YA_EVENT_H
-
-/**
- * @brief 告警事件类型
- * @author 戴月腾
- * @date 2018-09-24
- */
-
-#include<map>
-#include<chrono>
-#include<memory>
-#include"write-copy.h"
-#include"log.h"
-#include "db_api/CDBSingletonDefine.h"
-#include "card.h"
-#include"common_tool.h"
-#include "tool_time.h"
-#include "db_tool.h"
-#include <area.h>
-#include "ant.h"
-
-/**
- * @brief 事件状态
- */
-enum EVENT_STATUS
-{
-    ///事件开始
-    ES_START = 0,
-    ///呼救已处理状态
-    ES_DEAL_HELP = 1,
-    ///事件结束
-    ES_END = 100
-};
-
-enum EVENT_TYPE{ // 事件类型
-    ET_UNKNOWN = 0,
-	ET_OVER_COUNT_PERSON = 1, // 井下人员超员pit_module/CPicardmanager
-	ET_OVER_COUNT_VEHICLE = 2,    // 井下车辆超员pit_module/CPicardmanager
-
-    ET_AREA_OVER_COUNT_PERSON = 3,	// 区域人员超员
-    ET_AREA_OVER_COUNT_VEHICLE = 4,	// 区域车辆超员
-	ET_READER_ERROR = 6,
-    ET_CARD_LOW_POWER_SERIOUS = 12, // 电量极低
-
-    ET_CARD_OVER_TIME_PERSON = 13, // 人员井下超时pit_module/CPicardmanager
-	ET_CARD_OVER_TIME_VEHICLE = 14, // 车辆井下超时pit_module/CPicardmanager
-
-    ET_CARD_AREA_OVER_TIME_PERSON = 15, // 人员区域超时
-    ET_CARD_AREA_OVER_TIME_VEHICLE = 16, // 车辆区域超时
-    ET_CARD_AREA_LIMIT_PERSON = 17, // 人员进入限制区域
-    ET_CARD_AREA_LIMIT_VEHICLE = 18, // 车辆进入限制区域
-    ET_CARD_AREA_FORBIDDEN_PERSON = 19,  // 人员进入禁止区域
-    ET_CARD_AREA_FORBIDDEN_VEHICLE = 20, // 车辆进入禁止区域
-    ET_CARD_OVER_SPEED = 21, // 车辆超速
-    ET_CARD_HELP = 24, // 人员呼救
-
-    CARD_EVENT_COUNT_MAX,
-};
-
-/**
- * @brief 对象类型
- */
-enum OBJECT_TYPE
-{
-    ///矿井
-    OT_MINE = 1,
-    ///区域
-    OT_AREA = 2,
-    ///分站
-    OT_DEVICE_READER = 4,
-    ///标识卡,包括人员、车辆、自组网等
-    OT_CARD = 9,
-};
-
-/**
- * @brief 告警事件
- */
-struct ya_event
-{
-private:
-    uint64_t m_ev_id;
-public:
-    ya_event(uint64_t e_id):m_cur_time(std::chrono::system_clock::now())
-    {
-        m_ev_id = e_id;
-
-        m_obj_id = "";
-        m_map_id = 0;
-        m_area_id = 0;
-        x = 0;
-        y = 0;
-        m_limit_value = 0;
-        m_cur_value = 0;
-        m_desc = "";
-        m_landmarkid = 0;
-        m_landmarkdirect = 0;
-        m_landmarkdist = 0;
-
-        m_status=ES_START;
-        m_is_display=true;
-    }
-    ~ya_event(){}
-public:
-    ///告警状态,开始、结束
-    EVENT_STATUS m_status;
-
-    ///告警类型
-    EVENT_TYPE m_ev_type;
-    ///告警对象类型
-    OBJECT_TYPE m_obj_type;
-    /// 告警对象编号,与告警对象类型对应,如告警对象类型为分站,此字段为分站编号
-    std::string m_obj_id;
-    ///当前时间,为告警事件的触发时间,如果状态为开始,则表示开始时间,否则为结束时间
-    std::chrono::system_clock::time_point m_cur_time;
-
-    ///告警所在地图
-    int m_map_id;
-    ///告警所在区域
-    int m_area_id;
-    ///位置
-    double x;
-    ///位置
-    double y;
-    ///告警阈值
-    double m_limit_value;
-    ///当前值
-    double m_cur_value;
-    ///描述
-    std::string m_desc;
-
-    /// 地标信息
-    int m_landmarkid;
-    /// 与地标的距离
-    double m_landmarkdist;
-    /// 所处地标的方向
-    int m_landmarkdirect;
-
-    bool m_is_display;
-
-    bool is_end()
-    {
-        return ES_END == m_status;
-    }
-
-    ///作为事件map列表的id,方便查找;(obj_type<<32| obj_id)
-    uint64_t get_list_id();
-
-    uint64_t get_id(){return m_ev_id;}
-};
-typedef std::shared_ptr<ya_event> event_ptr;
-typedef std::map<uint64_t, std::shared_ptr<ya_event>> event_map;
-typedef std::shared_ptr<event_map> event_map_ptr;
-
-
-struct event_list:single_base<event_list,uint64_t,std::shared_ptr<ya_event>>
-{
-public:
-    ///作为事件map列表的id,方便查找;(ev_type<<48 | obj_type<<40 |  obj_id_type<<32 | obj_id)
-    static uint64_t to_list_id(EVENT_TYPE ev_type, OBJECT_TYPE obj_type, int obj_id_type, uint32_t obj_id)
-    {
-        return (static_cast<uint64_t>(ev_type)<<48)|(static_cast<uint64_t>(obj_type)<<40)
-                |(static_cast<uint64_t>(obj_id_type)<<32)|static_cast<uint64_t>(obj_id);
-    }
-    ///创建井下警告
-    static event_ptr create_event_mine(int objid, EVENT_TYPE ev_type)
-    {
-        return create_event(OT_MINE, objid, 0, ev_type);
-    } 
-    ///创建区域警告
-    static event_ptr create_event_area(int area_id, EVENT_TYPE ev_type)
-    {
-        return create_event(OT_AREA, area_id, 0, ev_type);
-    }
-
-    static event_ptr create_event_reader(int reader_id, EVENT_TYPE ev_type)
-    {
-        return create_event(OT_DEVICE_READER, reader_id, 0, ev_type);
-    }
-    ///创建与卡有关的警告,需要卡类型
-    static event_ptr create_event_card(uint32_t card_id, int32_t card_type, EVENT_TYPE ev_type)
-    {
-        return create_event(OT_CARD, static_cast<int32_t>(card_id), card_type, ev_type);
-    }
-
-    static void copy_event(const std::shared_ptr<card_location_base> card_ptr, event_ptr ev_ptr)
-    {
-        ev_ptr->x = card_ptr->x;
-        ev_ptr->y = card_ptr->y;
-        ev_ptr->m_cur_time = std::chrono::system_clock::now();
-        ev_ptr->m_is_display = card_ptr->m_display;
-
-        auto hover = card_ptr->get_area_hover();
-        if(nullptr!=hover)
-        {
-            ev_ptr->m_area_id =  hover->m_area->id();
-            ev_ptr->m_map_id = hover->m_area->mapid();
-
-            ev_ptr->m_landmarkid = hover->landmark_dir;
-            ev_ptr->m_landmarkdist = hover->landmark_dis;
-            ev_ptr->m_landmarkdirect = hover->landmark_dir;
-        }
-    }
-
-    static void copy_event(const std::shared_ptr<area> area_ptr, event_ptr ev_ptr)
-    {
-        ev_ptr->m_cur_time = std::chrono::system_clock::now();
-        ev_ptr->m_is_display = true;
-
-        ev_ptr->m_area_id =  area_ptr->id();
-        ev_ptr->m_map_id = area_ptr->mapid();
-    }
-    static void copy_event(const std::shared_ptr<site> site_ptr, event_ptr ev_ptr)
-    {
-        ev_ptr->m_cur_time = std::chrono::system_clock::now();
-        ev_ptr->m_is_display = true;
-
-        ev_ptr->m_area_id =  site_ptr->m_area_id;
-        ev_ptr->m_map_id = site_ptr->m_map_id;
-        ev_ptr->x = site_ptr->x;
-        ev_ptr->y = site_ptr->y;
-    }
-
-
-    std::shared_ptr<ya_event> get_event_card(uint32_t card_id, int card_type, EVENT_TYPE ev_type)
-    {
-        return base::get(to_list_id(ev_type, OT_CARD, card_type, card_id));
-    }
-
-    std::shared_ptr<ya_event> get_event_area(int32_t area_id, EVENT_TYPE ev_type)
-    {
-        return base::get(to_list_id(ev_type, OT_AREA, 0, static_cast<uint32_t>(area_id)));
-    }
-
-    std::shared_ptr<ya_event> get_event_reader(int32_t reader_id, EVENT_TYPE ev_type)
-    {
-        return base::get(to_list_id(ev_type,OT_DEVICE_READER, 0, static_cast<uint32_t>(reader_id)));
-    }
-    void load_his_data_from_db();
-
-    static void save_event(const event_ptr ev_ptr)
-    {
-        char sql[LENGTH_SQL] = {'\0'};
-
-        std::string _time = tool_time::to_str_ex(ev_ptr->m_cur_time);
-
-        sprintf(sql,
-                "INSERT IGNORE INTO his_event_data(event_id, stat, event_type_id, obj_type_id, obj_id, \
-                map_id, area_id, limit_value, cur_value, x, y, cur_time, description, \
-                landmark_id, landmark_dist,direction_mapper_id )\
-                VALUES(%ld, %d, %d, %d, %s, %d, %d, %.2f, %.2f, %f, %f, '%s', '%s', %d, %10.3f, %d);",
-        ev_ptr->get_id(), ev_ptr->m_status, ev_ptr->m_ev_type, ev_ptr->m_obj_type, ev_ptr->m_obj_id.c_str(),
-                ev_ptr->m_map_id, ev_ptr->m_area_id, ev_ptr->m_limit_value, ev_ptr->m_cur_value, ev_ptr->x, ev_ptr->y,
-                _time.c_str(), ev_ptr->m_desc.c_str(),
-                ev_ptr->m_landmarkid, ev_ptr->m_landmarkdist, ev_ptr->m_landmarkdirect);
-
-        db_tool::PushAsync(sql);
-    }
-
-    ~event_list(){}
-
-    static std::string ev_to_json(std::shared_ptr<ya_event> ev_ptr)
-    {
-        std::vector<std::shared_ptr<ya_event>> evs;
-        evs.push_back(ev_ptr);
-        return evs_to_json(evs);
-    }
-
-    static std::string evs_to_json(std::vector<std::shared_ptr<ya_event>> arr)
-    {
-        rapidjson::Document doc(rapidjson::kObjectType);
-        rapidjson::Value data(rapidjson::kArrayType);
-        rapidjson::Document::AllocatorType& allocator=doc.GetAllocator();
-
-        auto it=arr.begin();
-        for(;it!=arr.end();++it)
-        {
-            if((*it)->m_is_display)
-            {
-                ev_to_node(*it, allocator, data);
-            }
-        }
-
-        doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_EVENT, allocator);
-        doc.AddMember(JSON_ROOT_KEY_VERSION,INTERFACE_VERSION, allocator);
-        doc.AddMember(JSON_ROOT_KEY_DATA,data, allocator);
-
-        rapidjson::StringBuffer sb;
-        rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(sb);
-        doc.Accept(writer);
-
-        return sb.GetString();
-    }
-
-private:
-    static void ev_to_node(std::shared_ptr<ya_event> ev_ptr,
-                           rapidjson::Document::AllocatorType& allocator,
-                           rapidjson::Value& out_data)
-    {
-        rapidjson::Value ev(rapidjson::kObjectType);
-
-        ev.AddMember(JSON_KEY_EVENT_EVENT_ID,ev_ptr->get_id(), allocator);
-        ev.AddMember(JSON_KEY_EVENT_STATUS,ev_ptr->m_status, allocator);
-
-        ev.AddMember(JSON_KEY_EVENT_TYPE_ID,ev_ptr->m_ev_type, allocator);
-        ev.AddMember(JSON_KEY_EVENT_OBJ_TYPE_ID,ev_ptr->m_obj_type, allocator);
-
-        tool_json::add_member(ev, JSON_KEY_EVENT_OBJ_ID, ev_ptr->m_obj_id, allocator);
-        ev.AddMember(JSON_KEY_EVENT_MAP_ID,ev_ptr->m_map_id, allocator);
-        ev.AddMember(JSON_KEY_EVENT_AREA_ID,ev_ptr->m_area_id, allocator);
-        ev.AddMember(JSON_KEY_EVENT_X,ev_ptr->x, allocator);
-        ev.AddMember(JSON_KEY_EVENT_Y,ev_ptr->y, allocator);
-
-        ev.AddMember(JSON_KEY_EVENT_LIMIT_VALUE,ev_ptr->m_limit_value, allocator);
-        ev.AddMember(JSON_KEY_EVENT_CUR_VALUE,ev_ptr->m_cur_value, allocator);
-        ev.AddMember(JSON_KEY_EVENT_CUR_TIME,tool_time::to_ms(ev_ptr->m_cur_time), allocator);
-
-        ev.AddMember(JSON_KEY_EVENT_LANDMARK_ID,ev_ptr->m_landmarkid, allocator);
-        ev.AddMember(JSON_KEY_EVENT_LANDMARK_DIRECTION,ev_ptr->m_landmarkdirect, allocator);
-        ev.AddMember(JSON_KEY_EVENT_LANDMARK_DISTANCE,ev_ptr->m_landmarkdist, allocator);
-
-        out_data.PushBack(ev, allocator);
-    }
-
-private:
-    static event_ptr create_event(OBJECT_TYPE obj_type, int obj_id, int type, EVENT_TYPE ev_type)
-    {
-        auto ev_ptr = std::make_shared<ya_event>(tool_time::now_to_us());
-
-        ev_ptr->m_ev_type = ev_type;
-        ev_ptr->m_obj_type = obj_type;
-        ev_ptr->m_obj_id = tool_other::type_id_to_str(type, obj_id);
-
-        return ev_ptr;
-    }
-};
-
-#endif // YA_EVENT_H