lixioayao 6 years ago
parent
commit
2ea1e5721f

+ 1 - 0
.gitignore

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

File diff suppressed because it is too large
+ 0 - 1670
Makefile


+ 5 - 4
Makefile.am

@@ -5,12 +5,13 @@ SRC_MONKEYCAR= monkey_car/monkeycar_area.cpp monkey_car/monkeycar_bus.cpp monkey
 
 SRC_MODULE_SERVICE= module_service/area_business_car_attendance.cpp module_service/area_business_card_enter_or_leave.cpp \
 					module_service/area_business_count_checker.cpp module_service/area_business_forbid.cpp \
-					module_service/area_business_person_dwell_checker.cpp module_service/area_business_post_area.cpp \
-					module_service/module_meta_date_changed.cpp module_service/module_web.cpp \
-					module_service/area_business_speed_checker.cpp module_service/area_business_speed_checker.h module_service/area_business_geofault.cpp\
-					module_service/area_business_person_attendance.cpp\
+					module_service/area_business_geofault.cpp module_service/area_business_motionless_persion.cpp \
+					module_service/area_business_person_attendance.cpp module_service/area_business_person_dwell_checker.cpp \
+					module_service/area_business_post_area.cpp module_service/area_business_speed_checker.cpp \
+					module_service/module_meta_date_changed.cpp module_service/module_web.cpp module_service/area_business_work_rate.cpp\
 					module_service/module_call.cpp module_service/module_call_help.cpp module_service/module_mgr.cpp module_service/module_other_alarm.cpp
 
+
 SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_area.cpp card_base.cpp card_car.cpp \
     	  card.cpp card_message_handle.cpp cardMgr.cpp card_path.cpp card_person.cpp crc.cpp geo_hash.cpp \
 		  landmark.cpp line_fit.cpp loc_point.cpp loc_tool.cpp message.cpp message_file.cpp mine.cpp \

File diff suppressed because it is too large
+ 0 - 1670
Makefile.in


+ 13 - 0
area_business.cpp

@@ -10,6 +10,12 @@
 #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
 {
 	void regist(int type,area_business* ab)
@@ -33,7 +39,10 @@ struct area_business_factory
 				break;
 
 			if((business_type&1)==0)
+            {
+                business_type >>= 1;
 				continue;
+            }
 
 			business_type >>= 1;
 
@@ -61,6 +70,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);
 	}
 
 };

+ 1 - 1
area_business.h

@@ -19,7 +19,7 @@ struct area_business
 	virtual void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
 	virtual void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
 
-	virtual ~area_business(){}
+	virtual ~area_business(){};
 
 	static std::vector<area_business*> get_instance_list(int business_type);
 };

+ 3 - 3
card_person.cpp

@@ -114,9 +114,9 @@ void person::handle_three_rates(const point & pt)
 	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);
+	//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);
 }
 

+ 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])

+ 12 - 10
db/db_api/CDBCommon.h

@@ -57,16 +57,18 @@ namespace YADB
 	*/
     struct _DB_CONN_SETTING_
 	{
-		std::string Host;//数据库主机地址
-		std::string User;//用户名
-		std::string PWD;//密码
-		std::string DBName;//数据库名
-		std::string CharSet;//字符集
-		std::string stmtSQL;//预处理SQL
-		int TimeOut;//连接数据库超时(单位:秒)
-		_DB_CONN_SETTING_()
-		{
-			TimeOut = 0;
+		unsigned int Port;//端口
+		int TimeOut;//连接数据库超时(单位:秒)
+		std::string Host;//数据库主机地址
+		std::string User;//用户名
+		std::string PWD;//密码
+		std::string DBName;//数据库名
+		std::string CharSet;//字符集
+		std::string stmtSQL;//预处理SQL
+		_DB_CONN_SETTING_()
+		{
+			Port    = 3306;
+			TimeOut = 0;
 		}
 	};
 

+ 375 - 372
db/db_api/CDBConnPool.cpp

@@ -1,372 +1,375 @@
-#include "CDBConnPool.h"
-#include <boost/bind.hpp>
-
-namespace YADB
-{
-    boost::lockfree::queue<_ASYNC_SQL_*, boost::lockfree::capacity<MAX_ASYNC_QUEQUE_CAPACITY>> __AsyncQueue;//异步执行无锁队列
-
-	CDBConnPool::CDBConnPool()
-	{
-		__pAsyncDBConn = 0;
-	}
-
-	CDBConnPool::~CDBConnPool()
-	{
-		Close();
-	}
-
-	CDBConnect * CDBConnPool::__CreateIdleConn( std::string& ConnErr, bool IsTemp )
-	{
-		//std::string ConnErr;
-
-		_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
-		CDBConnect* pConn = new CDBConnect( IsTemp );
-		if ( !pConn->Connect( ConnSetting, ConnErr ) )
-		{
-			delete pConn;
-			pConn = 0;
-			return 0;
-		}
-
-		//如果设置了预处理SQL要准备预处理
-		if ( !ConnSetting.stmtSQL.empty() )
-		{
-			if ( !pConn->Preparestmt( ConnSetting.stmtSQL.c_str(), ConnErr ) )
-			{
-				delete pConn;
-				pConn = 0;
-				return 0;
-			}
-		}
-
-		__IdleConnList.push_back( pConn );
-		return pConn;
-	}
-
-	bool CDBConnPool::Create( const _DB_POOL_SETTING_& Setting, std::string& szError )
-	{
-		return Create(Setting,true,szError);
-	}
-
-	bool CDBConnPool::Create( const _DB_POOL_SETTING_& Setting,bool bAsync, std::string& szError )
-	{
-		std::unique_lock<std::mutex> lock( __mtx );
-
-		if ( Setting.PoolSize < DCC_MIN_COUNT )
-		{
-			szError = "PoolSize is too small!";
-			return false;
-		}
-
-		if ( Setting.PoolSize > DCC_MAX_COUNT )
-		{
-			szError = "PoolSize is too big!";
-			return false;
-		}
-
-		__Setting = Setting;
-		//检查连接池中是否已有连接数量
-		if ((int)__IdleConnList.size() < __Setting.PoolSize)
-		{
-			for ( int i = 0; i < __Setting.PoolSize; i++ )
-			{
-				CDBConnect* pConn = __CreateIdleConn( szError );
-				if ( !pConn )
-				{
-					return false;
-				}
-			}	
-		}
-		// 是否已创建异步线程
-		if (bAsync || !__Running)
-		{
-			//创建异步执行线程
-			__CreateAsyncThrdConn();
-
-			//启动异步执行线程
-			__StartAsyncThrd();
-		}
-		return true;
-	}
-
-	void CDBConnPool::Close()
-	{
-		std::unique_lock<std::mutex> lock( __mtx );
-
-		//停止异步执行线程
-		__StopAsyncThrd();
-
-		//刪除异步执行线程连接
-		__DestroyAsyncThrdConn();
-
-		//把所有列表中的连接对象都关闭删除并清除列表
-		CDBConnect* pConn = 0;
-		std::list<CDBConnect*>::iterator lit_conn;
-		for ( lit_conn = __BusyConnList.begin(); lit_conn != __BusyConnList.end(); lit_conn++ )
-		{
-			pConn = *lit_conn;
-			pConn->Close();
-			delete pConn;
-			pConn = 0;
-		}
-		__BusyConnList.clear();
-
-		for ( lit_conn = __IdleConnList.begin(); lit_conn != __IdleConnList.end(); lit_conn++ )
-		{
-			pConn = *lit_conn;
-			pConn->Close();
-			delete pConn;
-			pConn = 0;
-		}
-		__IdleConnList.clear();
-	}
-
-	CDBConnect * CDBConnPool::GetDBConnect( std::string& Error )
-	{
-		std::unique_lock<std::mutex> lock( __mtx );
-
-		CDBConnect* pConn = 0;
-
-		if ( __IdleConnList.size() > 0 )
-		{
-			pConn = *(__IdleConnList.begin());
-			__IdleConnList.pop_front();
-			__BusyConnList.push_back( pConn );
-		}
-		else
-		{
-			//如果已经没有空闲连接,只要当前连接池数量没有超过最大连接数就创建一个临时连接
-			// 这个判断没有意义(进入这个 __IdleConnList.size() <= 0 )
-			if ( __IdleConnList.size() < DCC_MAX_COUNT )
-			{
-				pConn = __CreateIdleConn( Error, true );
-				if ( !pConn )
-				{
-					Error = "Error,failed connect to database!";
-					return 0;
-				}
-
-				__IdleConnList.pop_front();
-				__BusyConnList.push_back( pConn );
-			}
-			else
-			{
-				Error = "Error,db connect count beyond the max connect count!";
-				return 0;
-			}
-		}
-
-		//验证看数据库连接是否还有效
-		if ( pConn )
-		{
-			if ( pConn->ConnctionTest( Error ) != 0 )
-			{
-				//重连一次
-				_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
-				pConn->Close();
-				int nRet = pConn->Connect( ConnSetting, Error );
-				if ( nRet < 0 )
-				{
-					GiveBack( pConn );
-					Error = "Error,failed connect to database!";
-					return 0;
-				}
-			}
-		}
-
-		return pConn;
-	}
-
-	void CDBConnPool::GiveBack( CDBConnect * pConn )
-	{
-		std::unique_lock<std::mutex> lock( __mtx );
-
-		if ( 0 == pConn )
-		{
-			return;
-		}
-
-		__BusyConnList.remove( pConn );
-
-		//如果是临时连接,直接删除不再放入到空闲连接列表中
-		if ( pConn->IsTemp() )
-		{
-			delete pConn;
-			pConn = 0;
-		}
-		else
-		{
-			__IdleConnList.push_back( pConn );
-		}
-	}
-
-    void CDBConnPool::_AsyncThreadFunc( CDBConnPool* pOwner )
-    {
-    	std::string Error;
-    	while( pOwner->__Running )
-	    {
-    		_ASYNC_SQL_* pData = 0;
-		
-    		while ( __AsyncQueue.pop( pData ) )
-			{
-				if ( pData )
-				{
-					if ( __pAsyncDBConn )
-					{
-						my_ulonglong llRes = 0;
-						llRes = __pAsyncDBConn->ExecuteRealSql( pData->SQL.c_str(), Error ); 
-						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());
-							//如果失败了看是不是数据库断开连接了,尝试重新连接一次
-							if ( __pAsyncDBConn->ConnctionTest( Error ) != 0 )
-							{
-								_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
-								__pAsyncDBConn->Close();
-								int nRet = __pAsyncDBConn->Connect( ConnSetting, Error );
-								if ( nRet < 0 )
-								{
-									Error = "Error,failed connect to database!";
-									//Connect failed, write log...
-									printf( "Error,failed connect to database,Err=%s\n", Error.c_str() );
-									//如果连接失败了休息一下
-									boost::this_thread::sleep( boost::posix_time::milliseconds( 100 ) );
-								}
-							}
-
-							//如果执行失败,失败次数加一,失败次数小于最大失败次数放到队尾下次再执行
-							pData->FailedCount++;
-							if ( pData->FailedCount < MAX_ASYNC_EXEC_FAILED_COUNT )
-							{
-								_ASYNC_SQL_* pNewData = new _ASYNC_SQL_();
-								pNewData->FailedCount = pData->FailedCount;
-								pNewData->SQL         = pData->SQL;
-								__AsyncQueue.push( pNewData );
-							}
-						}
-					}
-
-					delete pData;
-					pData = 0;
-				}
-			}
-
-    		boost::this_thread::sleep( boost::posix_time::microseconds( 10 ) );
-	    }
-
-    	//线程退出
-    	__IsExited = true;
-    }
-
-    void CDBConnPool::__StopAsyncThrd()
-    {
-    	if ( !__Running )
-    	{
-            return;
-    	}
-
-    	//等待异步执行线程退出
-	    __Running = false;
-
-	    while ( !__IsExited )
-	    {
-		    boost::this_thread::sleep(boost::posix_time::millisec(1));
-	    }
-
-	    //把异步执行无锁队列中每个元素释放
-	    _ASYNC_SQL_* pData = 0;
-		while ( __AsyncQueue.pop( pData ) )
-		{
-			if (pData)
-			{
-				delete pData;
-				pData = 0;
-			}
-		}
-    }
-
-	void CDBConnPool::__StartAsyncThrd()
-	{
-		__Running = true;
-		boost::thread thrd( boost::bind( &CDBConnPool::_AsyncThreadFunc, this, this ) );
-		thrd.detach();
-	}
-
-	void CDBConnPool::__CreateAsyncThrdConn()
-	{
-		std::string ConnErr;
-		//先断开之前的连接
-		this->__DestroyAsyncThrdConn();
-
-		_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
-		CDBConnect* pConn = new CDBConnect();
-		if ( !pConn->Connect( ConnSetting, ConnErr ) )
-		{
-			delete pConn;
-			pConn = 0;
-			return;
-		}
-
-		__pAsyncDBConn = pConn;
-	}
-
-	void CDBConnPool::__DestroyAsyncThrdConn()
-	{
-        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;
-    	}
-
-    	pData->SQL = strSQL;
-    	return __AsyncQueue.push( pData );
-    }
-
-    bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes,std::string& Error )
-    {
-		CDBConnect *pConn = GetDBConnect( Error );
-		if ( 0 == pConn )
-		{
-			return false;
-		}
-
-		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 );
-		if ( 0 == pConn )
-		{
-			return -1;
-		}
-	my_ulonglong nRet = pConn->ExecuteSql( szSql, Error );
-		GiveBack( pConn );
-		return nRet;
-		//return pConn->ExecuteSql( szSql, Error );
-    }
-}
+#include "CDBConnPool.h"
+#include <boost/bind.hpp>
+#include <boost/lockfree/queue.hpp>
+#include <stdio.h>
+namespace YADB
+{
+	boost::lockfree::queue<_ASYNC_SQL_*, boost::lockfree::capacity<MAX_ASYNC_QUEQUE_CAPACITY>> __AsyncQueue;//异步执行无锁队列
+
+	CDBConnPool::CDBConnPool()
+	{
+		__pAsyncDBConn = 0;
+		printf("connpool  ....\n");
+	}
+
+	CDBConnPool::~CDBConnPool()
+	{
+		Close();
+	}
+
+	CDBConnect * CDBConnPool::__CreateIdleConn( std::string& Error, bool IsTemp )
+	{
+		std::string ConnErr;
+
+		_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
+		CDBConnect* pConn = new CDBConnect( IsTemp );
+		if ( !pConn->Connect( ConnSetting, ConnErr ) )
+		{
+			delete pConn;
+			pConn = 0;
+			return 0;
+		}
+
+		//如果设置了预处理SQL要准备预处理
+		if ( !ConnSetting.stmtSQL.empty() )
+		{
+			if ( !pConn->Preparestmt( ConnSetting.stmtSQL.c_str(), Error ) )
+			{
+				delete pConn;
+				pConn = 0;
+				return 0;
+			}
+		}
+
+		__IdleConnList.push_back( pConn );
+		return pConn;
+	}
+
+	bool CDBConnPool::Create( const _DB_POOL_SETTING_& Setting, std::string& Error )
+	{
+		std::unique_lock<std::mutex> lock( __mtx );
+
+		if ( Setting.PoolSize < DCC_MIN_COUNT )
+		{
+			Error = "PoolSize is too small!"+std::to_string(Setting.PoolSize);
+			return false;
+		}
+
+		if ( Setting.PoolSize > DCC_MAX_COUNT )
+		{
+			Error = "PoolSize is too big!";
+			return false;
+		}
+
+		__Setting = Setting;
+		std::string ConnErr;
+		for ( int i = 0; i < __Setting.PoolSize; i++ )
+		{
+			CDBConnect* pConn = __CreateIdleConn( Error );
+			if ( !pConn )
+			{
+				return false;
+			}
+		}
+
+		//创建异步执行线程
+		__CreateAsyncThrdConn();
+
+		//启动异步执行线程
+		__StartAsyncThrd();
+
+		return true;
+	}
+
+	void CDBConnPool::Close()
+	{
+		std::unique_lock<std::mutex> lock( __mtx );
+
+		//停止异步执行线程
+		__StopAsyncThrd();
+
+		//刪除异步执行线程连接
+		__DestroyAsyncThrdConn();
+
+		//把所有列表中的连接对象都关闭删除并清除列表
+		CDBConnect* pConn = 0;
+		std::list<CDBConnect*>::iterator lit_conn;
+		for ( lit_conn = __BusyConnList.begin(); lit_conn != __BusyConnList.end(); lit_conn++ )
+		{
+			pConn = *lit_conn;
+			pConn->Close();
+			delete pConn;
+			pConn = 0;
+		}
+		__BusyConnList.clear();
+
+		for ( lit_conn = __IdleConnList.begin(); lit_conn != __IdleConnList.end(); lit_conn++ )
+		{
+			pConn = *lit_conn;
+			pConn->Close();
+			delete pConn;
+			pConn = 0;
+		}
+		__IdleConnList.clear();
+	}
+
+	CDBConnect * CDBConnPool::GetDBConnect( std::string& Error )
+	{
+		std::unique_lock<std::mutex> lock( __mtx );
+
+		CDBConnect* pConn = 0;
+
+		if ( __IdleConnList.size() > 0 )
+		{
+			pConn = *(__IdleConnList.begin());
+			__IdleConnList.pop_front();
+			__BusyConnList.push_back( pConn );
+		}
+		else
+		{
+			//如果已经没有空闲连接,只要当前连接池数量没有超过最大连接数就创建一个临时连接
+			if ( __IdleConnList.size() < DCC_MAX_COUNT )
+			{
+				pConn = __CreateIdleConn( Error, true );
+				if ( !pConn )
+				{
+					Error = "Error,failed connect to database!";
+					return 0;
+				}
+
+				__IdleConnList.pop_front();
+				__BusyConnList.push_back( pConn );
+			}
+			else
+			{
+				Error = "Error,db connect count beyond the max connect count!";
+				return 0;
+			}
+		}
+
+		//验证看数据库连接是否还有效
+		if ( pConn )
+		{
+			if ( pConn->ConnctionTest( Error ) != 0 )
+			{
+				//重连一次
+				_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
+				pConn->Close();
+				int nRet = pConn->Connect( ConnSetting, Error );
+				if ( nRet < 0 )
+				{
+					GiveBack( pConn );
+					Error = "Error,failed connect to database!";
+					return 0;
+				}
+			}
+		}
+
+		return pConn;
+	}
+
+	void CDBConnPool::GiveBack( CDBConnect * pConn )
+	{
+		std::unique_lock<std::mutex> lock( __mtx );
+
+		if ( 0 == pConn )
+		{
+			return;
+		}
+
+		__BusyConnList.remove( pConn );
+
+		//如果是临时连接,直接删除不再放入到空闲连接列表中
+		if ( pConn->IsTemp() )
+		{
+			delete pConn;
+			pConn = 0;
+		}
+		else
+		{
+			__IdleConnList.push_back( pConn );
+		}
+	}
+
+	void CDBConnPool::_AsyncThreadFunc( CDBConnPool* pOwner )
+	{
+		std::string Error;
+		while( pOwner->__Running )
+		{
+			_ASYNC_SQL_* pData = 0;
+			while ( __AsyncQueue.pop( pData ) )
+			{
+				if ( pData )
+				{
+					if ( __pAsyncDBConn )
+					{
+						my_ulonglong llRes = 0;
+						llRes = __pAsyncDBConn->ExecuteRealSql( pData->SQL.c_str(), Error );
+						if ( -1 == llRes )
+						{
+							//Execute failed, write log...
+							printf( "Error,调用ExcuteRealSql失败,Err=%s\n", Error.c_str() );
+							//如果失败了看是不是数据库断开连接了,尝试重新连接一次
+							if ( __pAsyncDBConn->ConnctionTest( Error ) != 0 )
+							{
+								_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
+								__pAsyncDBConn->Close();
+								int nRet = __pAsyncDBConn->Connect( ConnSetting, Error );
+								if ( nRet < 0 )
+								{
+									Error = "Error,failed connect to database!";
+									//Connect failed, write log...
+									printf( "Error,failed connect to database,Err=%s\n", Error.c_str() );
+									//如果连接失败了休息一下
+									boost::this_thread::sleep( boost::posix_time::milliseconds( 100 ) );
+								}
+							}
+
+							//如果执行失败,失败次数加一,失败次数小于最大失败次数放到队尾下次再执行
+							pData->FailedCount++;
+							if ( pData->FailedCount < MAX_ASYNC_EXEC_FAILED_COUNT )
+							{
+								_ASYNC_SQL_* pNewData = new _ASYNC_SQL_();
+								pNewData->FailedCount = pData->FailedCount;
+								pNewData->SQL         = pData->SQL;
+								__AsyncQueue.push( pNewData );
+							}
+						}
+					}
+
+					delete pData;
+					pData = 0;
+				}
+			}
+
+			boost::this_thread::sleep_for( boost::chrono::milliseconds( 1 ) );
+		}
+
+		//线程退出
+		__IsExited = true;
+	}
+
+	void CDBConnPool::__StopAsyncThrd()
+	{
+		if ( !__Running )
+		{
+			return;
+		}
+
+		//等待异步执行线程退出
+		__Running = false;
+
+		while ( !__IsExited )
+		{
+			boost::this_thread::sleep_for( boost::chrono::milliseconds( 1 ) );
+		}
+
+		//把异步执行无锁队列中每个元素释放
+		_ASYNC_SQL_* pData = 0;
+		while ( __AsyncQueue.pop( pData ) )
+		{
+			if (pData)
+			{
+				delete pData;
+				pData = 0;
+			}
+		}
+	}
+
+	void CDBConnPool::__StartAsyncThrd()
+	{
+		boost::thread thrd( boost::bind( &CDBConnPool::_AsyncThreadFunc, this, this ) );
+		thrd.detach();
+	}
+
+	void CDBConnPool::__CreateAsyncThrdConn()
+	{
+		std::string ConnErr;
+
+		_DB_CONN_SETTING_ ConnSetting = static_cast< _DB_CONN_SETTING_ >(__Setting);
+		CDBConnect* pConn = new CDBConnect();
+		if ( !pConn->Connect( ConnSetting, ConnErr ) )
+		{
+			delete pConn;
+			pConn = 0;
+			return;
+		}
+
+		__pAsyncDBConn = pConn;
+	}
+
+	void CDBConnPool::__DestroyAsyncThrdConn()
+	{
+		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;
+		}
+
+		pData->SQL = strSQL;
+		return __AsyncQueue.push( pData );
+	}
+
+	bool CDBConnPool::Query( const char *szSql, CDBResultSet& DBRes, std::string& Error )
+	{
+		CDBConnect *pConn = GetDBConnect( Error );
+		if ( 0 == pConn )
+		{
+			return false;
+		}
+
+		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 false;
+		}
+
+		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 );
+		GiveBack( pConn );
+		return nRet;
+	}
+
+	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;
+	}
+}

+ 205 - 171
db/db_api/CDBConnPool.h

@@ -1,111 +1,127 @@
+#ifndef CDBConnPool_h__
+#define CDBConnPool_h__
+
+
 /**
 * @brief
-鏁版嵁搴撹繛鎺ユ睜绫�
+数据库连接池类
 
 * @version
 V 1.0.0
 
 * @author
-鐜嬬泭淇�
+王益俊
 
 * @date
-鍒涘缓鏃堕棿:  2018-04-17\n
+创建时间:  2018-04-17\n
 
 * @note
-2018-04-17  鍒涘缓绫汇€俓n
+2018-04-17  创建类。\n
 
 * @warning
 
 * @bug
 
 */
-
-//#pragma once
-#ifndef YADB_CONNECT_POOL_H
-#define YADB_CONNECT_POOL_H
-
-#include <boost/atomic.hpp>
-#include <boost/thread/thread.hpp>
-#include <boost/lockfree/queue.hpp>
-
-#include <list>
-#include <string>
-#include <mutex>
-
-#include "CDBCommon.h"
-#include "CDBConnect.h"
-
-namespace YADB
-{
-	class CDBConnPool
-	{
-	private:
-		std::list<CDBConnect*> __BusyConnList;//姝e湪浣跨敤鐨勬暟鎹�簱杩炴帴鍒楄〃
-		std::list<CDBConnect*> __IdleConnList;//娌℃湁浣跨敤鐨勬暟鎹�簱杩炴帴鍒楄〃
-		_DB_POOL_SETTING_ __Setting;//鏁版嵁搴撹繛鎺ユ睜璁剧疆
-		std::mutex __mtx;//浜掓枼閲�
-		boost::atomic<bool> __Running{ false };//绾跨▼鏄�惁杩愯�鐨勬爣璇� 榛樿�鏈�紑鍚�,绛夊垱寤虹嚎绋嬪悗寮€鍚�
-		boost::atomic<bool> __IsExited{ false };//绾跨▼鏄�惁宸查€€鍑虹殑鏍囪瘑
-		CDBConnect* __pAsyncDBConn;//寮傛�鎵ц�绾跨▼鐢ㄧ殑鏁版嵁搴撹繛鎺�
-	private:
+
+#pragma once
+
+#include <boost/atomic.hpp>
+#include <boost/thread/thread.hpp>
+#include <boost/serialization/singleton.hpp>
+
+#include <list>
+#include <string>
+#include <mutex>
+
+#include "CDBCommon.h"
+#include "CDBConnect.h"
+
+namespace YADB
+{
+	class CDBConnPool
+	{
+	private:
+		std::list<CDBConnect*> __BusyConnList;//正在使用的数据库连接列表
+		std::list<CDBConnect*> __IdleConnList;//没有使用的数据库连接列表
+		_DB_POOL_SETTING_ __Setting;//数据库连接池设置
+		std::mutex __mtx;//互斥量
+		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
+		* @brief
+		创建一个空闲连接函数。
+		* @param  [out] std::string& Error  错误信息\n
+		* @param  [in] bool IsTemp  创建的连接是否是临时的\n
+
+		* @return 返回创建的连接
+		* @return  >0   成功\n
+		* @return  ==0  失败\n
+
+		* @note
+
+		* @warning
+		* @bug
 
-	    * @return 杩斿洖鍒涘缓鐨勮繛鎺�
-	    * @return  >0   鎴愬姛\n
-	    * @return  ==0  澶辫触\n
+		*/
+		CDBConnect* __CreateIdleConn( std::string& Error, bool IsTemp = false );
+		/**
+		* @brief
+		创建异步执行线程所用连接函数。
 
-	    * @note
+		* @param  无\n
 
-	    * @warning
+		* @return 无\n
 
-	    * @bug
+		* @note
 
-	    */
-		CDBConnect* __CreateIdleConn( std::string& Error, bool IsTemp = false );
+		* @warning
+
+		* @bug
+		*/
+		void __CreateAsyncThrdConn();
 		/**
-	    * @brief
-	    鍒涘缓寮傛�鎵ц�绾跨▼鎵€鐢ㄨ繛鎺ュ嚱鏁般€�
+		* @brief
+		??????创建异步执行线程所用连接函数。
 
-	    * @param  鏃燶n
+		* @param  无\n
 
-	    * @return 鏃燶n
+		* @return 无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void __CreateAsyncThrdConn();
+		*/
+		void __DestroyAsyncThrdConn();
 		/**
-	    * @brief
-	    鍒�櫎鍒涘缓寮傛�鎵ц�绾跨▼鎵€鐢ㄨ繛鎺ュ嚱鏁般€�
+		* @brief
+		启动异步执行线程函数。
 
-	    * @param  鏃燶n
+		* @param  无\n
 
-	    * @return 鏃燶n
+		* @return 无
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void __DestroyAsyncThrdConn();
+		*/
+		void __StartAsyncThrd();
 		/**
 		* @brief
-		鍚�姩寮傛�鎵ц�绾跨▼鍑芥暟銆�
+		停止异步执行线程函数。
 
-		* @param  鏃燶n
+		* @param  无\n
 
-		* @return 鏃�
+		* @return 
 
 		* @note
 
@@ -114,165 +130,161 @@ namespace YADB
 		* @bug
 
 		*/
-		void __StartAsyncThrd();
-	    /**
-	    * @brief
-	    鍋滄�寮傛�鎵ц�绾跨▼鍑芥暟銆�
+		void __StopAsyncThrd();
+	protected:
+		/**
+		* @brief
+		异步执行线程函数。
 
-	    * @param  鏃燶n
+		* @param  [in] CDBConnPool* pOwner  线程所属对象\n
 
-	    * @return 鏃�
+		* @return 无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void __StopAsyncThrd();
-	protected:
-	    /**
-	    * @brief
-	    寮傛�鎵ц�绾跨▼鍑芥暟銆�
+		*/
+		void _AsyncThreadFunc( CDBConnPool* pOwner );//线程函数
+	public:
+		CDBConnPool();
+		~CDBConnPool();
+		/**
+		* @brief
+		创建数据库连接池函数。
 
-	    * @param  [in] CDBConnPool* pOwner  绾跨▼鎵€灞炲�璞�n
+		* @param  [in] const _DB_POOL_SETTING_& Setting  数据库连接池设置\n
+		* @param  [out] std::string& Error  错误信息\n
 
-	    * @return 鏃燶n
+		* @return 返回创建数据库连接池是否成功
+		* @return  true   成功
+		* @return  false  失败
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void _AsyncThreadFunc( CDBConnPool* pOwner );//绾跨▼鍑芥暟
-	public:
-		CDBConnPool();
-		~CDBConnPool();
+		*/
+		bool Create( const _DB_POOL_SETTING_& Setting, std::string& Error );
 		/**
-	    * @brief
-	    鍒涘缓鏁版嵁搴撹繛鎺ユ睜鍑芥暟銆�
+		* @brief
+		关闭线程池函数。
 
-	    * @param  [in] const _DB_POOL_SETTING_& Setting  鏁版嵁搴撹繛鎺ユ睜璁剧疆\n
-		* @param  [in] bool bAsync  鏄�惁鍒涘缓寮傛�闃熷垪鍙婂�鐞嗙嚎绋媆n
-	    * @param  [out] std::string& szError  閿欒�淇℃伅\n
+		* @param  无\n
 
-	    * @return 杩斿洖鍒涘缓鏁版嵁搴撹繛鎺ユ睜鏄�惁鎴愬姛
-	    * @return  true   鎴愬姛
-	    * @return  false  澶辫触
+		* @return  无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-	   	bool Create( const _DB_POOL_SETTING_& Setting, std::string& szError );
-		bool Create( const _DB_POOL_SETTING_& Setting,bool bAsync, std::string& szError );
+		*/
+		void Close();
 		/**
-	    * @brief
-	    鍏抽棴绾跨▼姹犲嚱鏁般€�
+		* @brief
+		从连接池中获得一个数据库连接函数。
 
-	    * @param  鏃燶n
+		* @param  [out] std::string& Error  错误信息\n
 
-	    * @return  鏃燶n
+		* @return 返回获得一个数据库连接是否成功
+		* @return  0 失败\n
+		* @return  !=0 获得的数据库连接\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void Close();
+		*/
+		CDBConnect* GetDBConnect( std::string& Error );
 		/**
-	    * @brief
-	    浠庤繛鎺ユ睜涓�幏寰椾竴涓�暟鎹�簱杩炴帴鍑芥暟銆�
+		* @brief
+		归还一个数据库连接到连接池中函数。
 
-	    * @param  [out] std::string& Error  閿欒�淇℃伅\n
+		* @param  [in] CDBConnect* pConn  数据库连接\n
 
-	    * @return 杩斿洖鑾峰緱涓€涓�暟鎹�簱杩炴帴鏄�惁鎴愬姛
-	    * @return  0 澶辫触\n
-	    * @return  !=0 鑾峰緱鐨勬暟鎹�簱杩炴帴\n
+		* @return  无\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		CDBConnect* GetDBConnect( std::string& Error );
+		*/
+		void GiveBack( CDBConnect* pConn );
 		/**
-	    * @brief
-	    褰掕繕涓€涓�暟鎹�簱杩炴帴鍒拌繛鎺ユ睜涓�嚱鏁般€�
+		* @brief
+		把SQL语句加入异步执行队列函数。
 
-	    * @param  [in] CDBConnect* pConn  鏁版嵁搴撹繛鎺�n
+		* @param  [in] const std::string& strSQL  要执行的SQL语句\n
 
-	    * @return  鏃燶n
+		* @return  加入异步执行队列是否成功\n
+		* @return  true成功\n
+		* @return  false失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		void GiveBack( CDBConnect* pConn );
-	    /**
-	    * @brief
-	    鎶奡QL璇�彞鍔犲叆寮傛�鎵ц�闃熷垪鍑芥暟銆�
+		*/
+		bool PushAsync( const std::string& strSQL );
+		/**
+		* @brief
+		执行SQL语句返回结果集函数。
 
-	    * @param  [in] const std::string& strSQL  瑕佹墽琛岀殑SQL璇�彞\n
+		* @param [in] const char *szSql  SQL语句\n
+		* @param [out] CDBResultSet& DBRes  结果集\n
+		* @param [out] std::string& Error  错误信息\n
 
-	    * @return  鍔犲叆寮傛�鎵ц�闃熷垪鏄�惁鎴愬姛\n
-	    * @return  true鎴愬姛\n
-	    * @return  false澶辫触\n
+		* @return 返回查询是否成功
+		* @return  true  成功\n
+		* @return  false  失败\n
 
-	    * @note
+		* @note
 
-	    * @warning
+		* @warning
 
-	    * @bug
+		* @bug
 
-	    */
-		bool PushAsync( const std::string& strSQL );
+		*/
+		bool Query( const char *szSql, CDBResultSet& DBRes, std::string& Error );
 		/**
-		 * @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] std::string& Error  错误信息\n
 
-		 * @return 杩斿洖鏌ヨ�鏄�惁鎴愬姛
-		 * @return  true  鎴愬姛\n
-		 * @return  false  澶辫触\n
+		* @return 返回查询的结果集
 
-		 * @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);      
-        
-        
+		MYSQL_RES* Query( const char *szSql, std::string& Error );
 		/**
 		* @brief
-		鎵ц�SQL璇�彞鍑芥暟銆�
+		执行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
 
@@ -281,9 +293,31 @@ namespace YADB
 		* @bug
 
 		*/
-		my_ulonglong ExecuteSql( const char *szSql, std::string& Error );
-	};
-}
+		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
 
-#endif
+		* @note
+
+		* @warning
+
+		* @bug
+
+		*/
+		my_ulonglong ExecuteSqlID( const char *szSql, std::string& Error );
+	};
+}
+
+//单件相关定义
+typedef boost::serialization::singleton<YADB::CDBConnPool> singleton_CDBConnPool;
+#define sDBConnPool singleton_CDBConnPool::get_mutable_instance()
+
+#endif // CDBConnPool_h__

+ 18 - 0
db/db_api/CDBConnect.cpp

@@ -182,6 +182,24 @@ namespace YADB
 
 		return mysql_affected_rows( __pConn );
 	}
+	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 );
+	}
 
 	my_ulonglong CDBConnect::ExecuteRealSql( const char * szSql, std::string & Error )
 	{

+ 19 - 0
db/db_api/CDBConnect.h

@@ -223,6 +223,25 @@ namespace YADB
 
 	    */
 		my_ulonglong ExecuteRealSql( 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  <1  失败\n
+		* @return  >=1  成功\n
+
+		* @note
+
+		* @warning
+
+		* @bug
+
+		*/
+		my_ulonglong ExecuteSqlID( const char *szSql, std::string& Error );
 		/**
 	    * @brief
 	    获得最后一次错误信息函数。

+ 1 - 1
db/db_tool.cpp

@@ -40,7 +40,7 @@ namespace db_tool
 
         auto start = mine_tool_ptr->m_attendance_start_time;
         auto end = mine_tool_ptr->m_attendance_start_time;
-        if(!mine_tool_ptr->is_attendance())//考勤结束时间
+        if(!mine_tool_ptr->m_is_attendance)//考勤结束时间
         {
             end = std::chrono::system_clock::now();
         }

BIN
db/libyadb.a


+ 1 - 4
main.cpp

@@ -64,6 +64,7 @@ struct Init_Setting
         special_area_list::instance()->init_from_db();
         //auto s = special_area_list::instance()->get_special_id(1013,point(4727,-254),2);
         //std_info("test special_area:%d",s);
+		getchar();
 		mine_business::inst()->load();
 
         card_list::instance()->load_his_card_postion_from_db();
@@ -92,7 +93,6 @@ struct Init_Setting
     void _mysql_init(YADB::_DB_POOL_SETTING_ &dps)
     {
         std::string szError = "";
-		//std::this_thread::sleep_for(std::chrono::seconds(2));
         //创建连接池
         if ( !sDBConnPool.Create( dps, szError ) )
         {
@@ -104,7 +104,6 @@ struct Init_Setting
     {
         std::map<std::string, YA::MSG_HANDLE_FUNC_TYPE> MsgFuncList;
 
-        //MsgFuncList.insert( std::make_pair( "req_all_data", On_req_all_data ) );
         //MsgFuncList.insert( std::make_pair( "req_all_person_on_car", On_req_all_person_on_car ) );
 
         module_mgr::init(config, MsgFuncList);
@@ -118,7 +117,6 @@ struct Init_Setting
             std_error("web socket init failed.");
             return;
         }
-
         //登录
         swsClientMgr.login();
         //init thread...
@@ -127,7 +125,6 @@ struct Init_Setting
         swsTimerThrd.Init( Config );
         swsTimerThrd.Start();
     }
-
 };
 
 

+ 3 - 2
mine_business.cpp

@@ -226,11 +226,12 @@ mine_business::mine_business()
 	m_staffer_num_ptr.reset(new staffer_num_business);
 	m_reverse_alarm_ptr.reset(new reverse_alarm_business);
 	m_rear_ended_ptr.reset(new rear_end_collision_prevented_business);
+	std_info("------------------------mine_business-------------------------------");
 }
 mine_business* mine_business::inst()
 {
-	static mine_business ct;
-	return &ct;
+	static mine_business mb;
+	return &mb;
 }
 void mine_business::run_business()
 {

+ 2 - 0
mine_business.h

@@ -10,6 +10,8 @@ class rear_end_collision_prevented_business;
 class card_location_base;
 struct mine_business
 {
+	mine_business(const mine_business&)=delete;
+	mine_business & operator=(const mine_business&)=delete;
 	static mine_business *inst();
 	void run_business();
 //人员数量曲线功能

+ 0 - 16
module_service/area_business_car_attendance.cpp

@@ -67,19 +67,3 @@ void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
     }
 
 }
-
-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);
-}
-

+ 1 - 1
module_service/area_business_car_attendance.h

@@ -20,6 +20,6 @@ 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 save_attendance(const std::shared_ptr<card_location_base>& card_ptr, const std::shared_ptr<area_hover> area_hover_ptr);
+    static void save_attendance(const std::shared_ptr<card_location_base>& card_ptr, const std::shared_ptr<area_hover> area_hover_ptr){}
 };
 #endif // AREA_BUSINESS_CAR_ATTENDANCE_H

+ 8 - 2
module_service/area_business_card_enter_or_leave.cpp

@@ -48,16 +48,19 @@ 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(card_ptr->is_vehicle()?"add_area_vehicle":"add_area_staff");
+#if 0
     std::string call("add_area_staff");
     if(card_ptr->is_vehicle())//车卡
     {
         call="add_area_vehicle";
     }
+#endif
 
     std::string start_str = tool_time::to_str_ex(start_time_ms);
 
@@ -70,16 +73,19 @@ 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(card_ptr->is_vehicle()?"add_area_vehicle":"add_area_staff");
+#if 0
     std::string call("add_area_staff");
     if(card_ptr->is_vehicle())//车卡
     {
         call="add_area_vehicle";
     }
+#endif
 
     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);
 };
 

+ 1 - 0
module_service/area_business_geofault.cpp

@@ -25,6 +25,7 @@ struct geofault_data:business_data
 
 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)
 {

+ 1 - 1
module_service/area_business_geofault.h

@@ -23,7 +23,7 @@ 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);

+ 41 - 15
module_service/area_business_motionless_persion.cpp

@@ -8,22 +8,36 @@
 #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_warn_flag(false)
     {
-        m_acc_0count=0;
+//        m_acc_0count=0;
 //        m_acc_start_time=0;
     }
 
-    ///;检测到多少次之后定位完全静止
-    std::atomic<int> m_acc_0count;
+
+   ///;检测到多少次之后定位完全静止
+ //   std::atomic<int> m_acc_0count;
 //    ///检测到多久之后告警
 //    time_t m_acc_start_time;
+
+	int m_acc_0count; //连续静止数量
+	bool m_warn_flag;  //告警推送标志
 };
 
+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)
 {
@@ -35,33 +49,45 @@ void area_business_motionless_persion::on_hover(const std::shared_ptr<area_hover
                                          const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
 {
     auto ptr_temp = static_cast<motionless_data*>(ptr.get());
+
+	bool do_send=false;//是否需要发送
+
     if(0 == static_cast<int>(card_ptr->m_acc))
     {
-        ptr_temp->m_acc_0count++;
+        if((do_send = ++ptr_temp->m_acc_0count >= _acc_0count_limit && !ptr_temp->m_warn_flag))		//检测计数 && 是否已经发送,已经发送的话,就不发了
+		{
+			ptr_temp->m_warn_flag=true;	//如果确定发送的话,更新数据状态
+		}
     }
     else
     {
         ptr_temp->m_acc_0count=0;
+		if((do_send=ptr_temp->m_warn_flag))//如果正在告警,则取消告警
+		{
+			ptr_temp->m_warn_flag=false;
+		}
     }
 
-    if(ptr_temp->m_acc_0count >= _acc_0count_limit)
-    {
-        ptr_temp->m_acc_0count = _acc_0count_limit;
-    }
-
-    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);
+	if(do_send)//需要发送
+	{
+		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, ptr_temp->m_warn_flag);
+	}
 }
 
 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)
 {
-    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);
+    auto ptr_temp = static_cast<motionless_data*>(ptr.get());
+	if(ptr_temp->m_warn_flag)//如果正在告警,则发送取消告警的信息
+	{
+		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();

+ 3 - 9
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;发送
@@ -43,15 +43,10 @@ private:
 public:
     int area_business_type()
     {
-        return 5;
+        return 10;
     }
+	static void init(config_file& config);
 
-    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"));
-    }
 
     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);
@@ -59,5 +54,4 @@ public:
 
 };
 
-int area_business_motionless_persion::_acc_0count_limit;
 #endif // MODULE_MOTIONLESS_PERSION_H

+ 3 - 8
module_service/area_business_person_attendance.cpp

@@ -194,14 +194,9 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
             //检查井下是否超员--是否需要取消
             //CMineCardManager::instance()->OnPersonUp(card_ptr);
 
-            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);
-            }
-
-            _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();
         }
         else
         {

+ 2 - 3
module_service/area_business_speed_checker.cpp

@@ -8,6 +8,8 @@
 #include"area.h"
 #include "card.h"
 
+std::unordered_map<int,double> area_business_speed_checker::_vehicle_category_map;
+
 struct over_speed_data:business_data
 {
     over_speed_data()
@@ -21,8 +23,6 @@ struct over_speed_data:business_data
     int m_normal_speed_count;
     double m_limit_speed;
 };
-
-std::unordered_map<int,double> area_business_speed_checker::_vehicle_category_map;
 area_business_speed_checker::area_business_speed_checker()
 {
 }
@@ -172,4 +172,3 @@ void area_business_speed_checker::init_vehicle_category_from_db()
 }
 
 
-

+ 70 - 0
module_service/area_business_work_rate.cpp

@@ -0,0 +1,70 @@
+#include"area_business_work_rate.h"
+
+#include<memory>
+#include<string>
+
+#include"log.h"
+#include"card.h"
+#include"struct_def.h"
+#include"three_rates.h"
+#include"area.h"
+#include"card.h"
+#include"tool_time.h"
+
+struct work_rate_data:business_data
+{
+    work_rate_data()
+    {
+    }
+};
+
+void area_business_work_rate::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())
+    {
+        return;
+    }
+
+    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
+
+    auto area = std::make_shared<area_data>();
+    area->area_id = area_hover_ptr->id();
+    //area->is_work_area = area_hover_ptr->m_area->
+    area->enter_time = tool_time::now_to_seconds();
+
+    three_rates::get_instance()->enter_area(card, area);
+}
+
+void area_business_work_rate::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)
+{
+}
+
+
+void area_business_work_rate::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;
+    }
+
+    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
+
+    auto area = std::make_shared<area_data>();
+    area->area_id = area_hover_ptr->id();
+    //area->is_work_area = area_hover_ptr->m_area->
+    area->leave_time = tool_time::now_to_seconds();
+
+    three_rates::get_instance()->leave_area(card, area);
+}
+

+ 22 - 0
module_service/area_business_work_rate.h

@@ -0,0 +1,22 @@
+#ifndef AREA_BUSINESS_WORK_RATE
+#define AREA_BUSINESS_WORK_RATE
+
+#include<area_business.h>
+
+/**
+ * @brief 工时利用率
+ */
+class area_business_work_rate:public area_business
+{
+public:
+    int area_business_type()
+    {
+        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);
+    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 // AREA_BUSINESS_WORK_RATE