start working on 0.7.x branch

- added FileLog which stores content to the file log
- now Log is only a wrapper - it puts messages to the local buffer and when logsave is used then the buffer is put to FileLog
- new base classes:
  WinixBase (Log, Config*, Synchro*)
  WinixModel : public WinixBase (morm::ModelConnector*, Plugin*)
  WinixSystem : public WinixModel (System*)
  WinixRequest : public WinixSystem (SLog, Cur*)
- singletons: log, slog, plugin are depracated - now references to them are in base classses (WinixBase, WinixModel)
- DbBase,  DbConn and Db are depracated - now we are using Morm project (in WinixModel there is a model_connector pointer)
  each thread will have its own ModelConnector





git-svn-id: svn://ttmath.org/publicrep/winix/branches/0.7.x@1146 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2018-11-21 11:03:53 +00:00
parent a7c47140ae
commit a2ffc1e81c
121 changed files with 7832 additions and 6662 deletions

View File

@@ -1,40 +1,50 @@
# DO NOT DELETE
main.o: ../../../winix/winixd/core/log.h
main.o: ../../../winix/winixd/core/textstream.h
main.o: ../../../winix/winixd/core/misc.h ../../../winix/winixd/core/item.h
main.o: ../../../pikotools/space/space.h
main.o: ../../../winix/winixd/core/app.h
main.o: ../../../winix/winixd/core/sessionmanager.h
main.o: ../../../winix/winixd/core/sessioncontainer.h
main.o: ../../../winix/winixd/core/session.h
main.o: ../../../winix/winixd/core/item.h ../../../pikotools/space/space.h
main.o: ../../../pikotools/textstream/types.h ../../../pikotools/date/date.h
main.o: ../../../pikotools/convert/convert.h
main.o: ../../../pikotools/convert/inttostr.h
main.o: ../../../pikotools/convert/strtoint.h
main.o: ../../../pikotools/convert/text.h
main.o: ../../../winix/winixd/core/requesttypes.h
main.o: ../../../pikotools/textstream/textstream.h
main.o: ../../../pikotools/membuffer/membuffer.h
main.o: ../../../pikotools/textstream/types.h ../../../pikotools/utf8/utf8.h
main.o: ../../../winix/winixd/core/winix_const.h
main.o: ../../../winix/winixd/core/logmanipulators.h
main.o: ../../../winix/winixd/core/slog.h ../../../winix/winixd/core/cur.h
main.o: ../../../winix/winixd/core/request.h
main.o: ../../../winix/winixd/core/error.h
main.o: ../../../pikotools/convert/text.h ../../../pikotools/convert/misc.h
main.o: ../../../winix/winixd/core/error.h ../../../winix/winixd/core/user.h
main.o: ../../../winix/winixd/core/plugindata.h
main.o: ../../../winix/winixd/core/rebus.h
main.o: ../../../winix/winixd/core/winixbase.h
main.o: ../../../winix/winixd/core/config.h
main.o: ../../../pikotools/space/spaceparser.h
main.o: ../../../pikotools/space/space.h
main.o: ../../../winix/winixd/core/htmlfilter.h
main.o: ../../../winix/winixd/core/log.h
main.o: ../../../winix/winixd/core/textstream.h
main.o: ../../../pikotools/textstream/textstream.h
main.o: ../../../pikotools/membuffer/membuffer.h
main.o: ../../../pikotools/textstream/types.h ../../../pikotools/utf8/utf8.h
main.o: ../../../winix/winixd/core/logmanipulators.h
main.o: ../../../winix/winixd/core/filelog.h
main.o: ../../../winix/winixd/core/synchro.h ../../../winix/winixd/core/log.h
main.o: ../../../winix/winixd/core/filelog.h
main.o: ../../../winix/winixd/core/lock.h
main.o: ../../../winix/winixd/core/synchro.h
main.o: ../../../winix/winixd/core/ipban.h ../../../winix/winixd/core/cur.h
main.o: ../../../winix/winixd/core/request.h
main.o: ../../../winix/winixd/core/requesttypes.h
main.o: ../../../winix/winixd/core/config.h
main.o: ../../../winix/winixd/templates/htmltextstream.h
main.o: ../../../winix/winixd/core/textstream.h
main.o: ../../../pikotools/space/spacetojson.h ../../../ezc/src/outstreams.h
main.o: ../../../winix/winixd/core/session.h
main.o: ../../../winix/winixd/core/user.h
main.o: ../../../winix/winixd/core/plugindata.h
main.o: ../../../winix/winixd/core/rebus.h ../../../winix/winixd/core/ipban.h
main.o: ../../../winix/winixd/core/mount.h
main.o: ../../../winix/winixd/templates/locale.h
main.o: ../../../winix/winixd/core/slog.h ../../../winix/winixd/core/app.h
main.o: ../../../winix/winixd/core/winixmodel.h
main.o: ../../../winix/winixd/core/winixbase.h
main.o: ../../../winix/winixd/core/plugin.h
main.o: ../../../winix/winixd/core/pluginmsg.h
main.o: ../../../winix/winixd/core/ipbancontainer.h
main.o: ../../../winix/winixd/core/lastcontainer.h
main.o: ../../../winix/winixd/core/system.h ../../../winix/winixd/core/job.h
main.o: ../../../winix/winixd/core/basethread.h
main.o: ../../../winix/winixd/core/synchro.h
main.o: ../../../winix/winixd/core/dirs.h
main.o: ../../../winix/winixd/core/dircontainer.h
main.o: ../../../winix/winixd/db/db.h ../../../winix/winixd/db/dbbase.h
@@ -47,9 +57,19 @@ main.o: ../../../winix/winixd/db/dbitemcolumns.h
main.o: ../../../winix/winixd/core/user.h ../../../winix/winixd/core/group.h
main.o: ../../../winix/winixd/core/dircontainer.h
main.o: ../../../winix/winixd/core/ugcontainer.h
main.o: ../../../winix/winixd/core/log.h
main.o: ../../../winix/winixd/core/mounts.h
main.o: ../../../winix/winixd/core/mountparser.h
main.o: ../../../winix/winixd/core/crypt.h ../../../winix/winixd/core/run.h
main.o: ../../../winix/winixd/core/users.h
main.o: ../../../winix/winixd/core/ugcontainer.h
main.o: ../../../winix/winixd/core/groups.h
main.o: ../../../winix/winixd/core/group.h
main.o: ../../../winix/winixd/core/loadavg.h
main.o: ../../../winix/winixd/core/image.h
main.o: ../../../winix/winixd/core/threadmanager.h
main.o: ../../../winix/winixd/notify/notify.h
main.o: ../../../winix/winixd/notify/notifypool.h
main.o: ../../../winix/winixd/templates/locale.h
main.o: ../../../winix/winixd/templates/patterns.h
main.o: ../../../winix/winixd/templates/locale.h
main.o: ../../../winix/winixd/templates/localefilter.h ../../../ezc/src/ezc.h
@@ -61,33 +81,22 @@ main.o: ../../../ezc/src/patternparser.h
main.o: ../../../winix/winixd/notify/notifythread.h
main.o: ../../../winix/winixd/core/basethread.h
main.o: ../../../winix/winixd/notify/templatesnotify.h
main.o: ../../../winix/winixd/core/config.h
main.o: ../../../winix/winixd/core/users.h
main.o: ../../../winix/winixd/core/ugcontainer.h
main.o: ../../../winix/winixd/core/lastcontainer.h
main.o: ../../../winix/winixd/core/mounts.h
main.o: ../../../winix/winixd/core/mountparser.h
main.o: ../../../winix/winixd/core/crypt.h ../../../winix/winixd/core/run.h
main.o: ../../../winix/winixd/core/users.h
main.o: ../../../winix/winixd/core/groups.h
main.o: ../../../winix/winixd/core/group.h
main.o: ../../../winix/winixd/core/loadavg.h
main.o: ../../../winix/winixd/core/image.h
main.o: ../../../winix/winixd/core/threadmanager.h
main.o: ../../../winix/winixd/core/winixmodel.h
main.o: ../../../winix/winixd/core/timezones.h
main.o: ../../../winix/winixd/core/timezone.h
main.o: ../../../winix/winixd/core/sessionmanager.h
main.o: ../../../winix/winixd/core/sessioncontainer.h
main.o: ../../../winix/winixd/core/ipbancontainer.h
main.o: ../../../winix/winixd/core/sessionidmanager.h
main.o: ../../../tito/src/base64.h ../../../tito/src/aes.h
main.o: ../../../winix/winixd/functions/functions.h
main.o: ../../../winix/winixd/functions/functionbase.h
main.o: ../../../winix/winixd/core/request.h
main.o: ../../../winix/winixd/core/system.h
main.o: ../../../winix/winixd/core/synchro.h
main.o: ../../../winix/winixd/functions/functionparser.h
main.o: ../../../winix/winixd/core/winixrequest.h
main.o: ../../../winix/winixd/core/winixsystem.h
main.o: ../../../winix/winixd/core/cur.h
main.o: ../../../winix/winixd/core/sessionmanager.h
main.o: ../../../winix/winixd/core/slog.h
main.o: ../../../winix/winixd/functions/functionparser.h
main.o: ../../../winix/winixd/functions/account.h
main.o: ../../../winix/winixd/functions/adduser.h
main.o: ../../../winix/winixd/functions/cat.h
@@ -136,17 +145,15 @@ main.o: ../../../winix/winixd/templates/indexpatterns.h
main.o: ../../../winix/winixd/templates/patterns.h
main.o: ../../../winix/winixd/templates/changepatterns.h
main.o: ../../../winix/winixd/templates/htmltextstream.h
main.o: ../../../winix/winixd/core/sessionmanager.h
main.o: ../../../winix/winixd/core/compress.h
main.o: ../../../winix/winixd/core/postparser.h
main.o: ../../../winix/winixd/core/httpsimpleparser.h
main.o: ../../../winix/winixd/core/plugin.h
main.o: ../../../winix/winixd/core/pluginmsg.h
main.o: ../../../pikotools/convert/text.h
main.o: ../../../winix/winixd/core/cookieparser.h
main.o: ../../../winix/winixd/core/postmultiparser.h
main.o: ../../../winix/winixd/core/acceptencodingparser.h
main.o: ../../../winix/winixd/core/acceptbaseparser.h
main.o: ../../../pikotools/space/jsontospaceparser.h
main.o: ../../../winix/winixd/core/plugin.h
main.o: ../../../winix/winixd/core/winixrequest.h
main.o: ../../../pikotools/logger/logger.h
main.o: ../../../winix/winixd/core/version.h

View File

@@ -40,23 +40,16 @@
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
#include "core/log.h"
#include "core/slog.h"
#include "core/app.h"
#include "core/plugin.h"
#include "core/version.h"
#include "utf8/utf8.h"
#include "core/filelog.h"
namespace Winix
{
Log log;
Log nlog; // notify log (used by a notification thread)
SLog slog; // session logger
Plugin plugin;
/*
@@ -108,7 +101,7 @@ void CloseDescriptors()
void LogInfo(LogManipulators log_level, const char * msg, bool put_version, const char * msg2)
{
log << log_level;
log.PrintDate(PT::Date(std::time(0)), app.config.log_time_zone_id);
log.PrintDate(PT::Date(std::time(0)));
log << ' ' << msg;
if( put_version )
@@ -191,12 +184,11 @@ using Winix::app;
if( app.config.demonize && !app.Demonize() )
return 4;
Winix::log.SetTimeZones(&app.system.time_zones);
Winix::log.Init(app.config.log_level, app.config.log_save_each_line, app.config.log_file,
app.config.log_stdout, app.config.log_request);
app.InitFileLog();
Winix::nlog.Init(app.config.log_level, true, app.config.log_notify_file, false, 1);
Winix::log.SetFileLog(&app.file_log); // IMPROVE ME the singleton will be removed
Winix::log.Init(app.config.log_level, app.config.log_save_each_line, app.config.log_request);
Winix::LogInfo(Winix::log3, "booting Winix", true, "");
@@ -212,7 +204,7 @@ using Winix::app;
// load plugins before loading sessions - session_manager.LoadSessions()
// because some of the plugins can init its own sessions dates
Winix::plugin.LoadPlugins(app.config.plugins_dir, app.config.plugin_file);
app.InitPlugins();
// app.Init() starts other threads as well (they will be waiting on the lock)
if( !app.Init() )
@@ -233,14 +225,7 @@ using Winix::app;
// main loop
app.Start();
app.Lock();
Winix::plugin.Call((Winix::Session*)0, WINIX_CLOSE);
app.Close();
// now all sessions are cleared
app.Unlock();
app.WaitForThreads();
// now all others threads are terminated
Winix::LogInfo(Winix::log1, "Winix", true, "stopped");
Winix::RemovePidFile();