allow a request to be processed in a job

Now we allow a request to be passed into a job queue,
and after the job finishes the request is passed into
a controller again. In order to achieve this we have
a requests queue in System, when we put a request
to the job this Request structure is preserved in the
queue and for a new request a new Request is added to
the queue.

while here:
- remove App::Lock()/Unlock(), use scoped locking
- fix: Plugin now has a Call method which takes ModelConnector
  and a logger (used in multithreaded environment)
- BaseThread has a main_model_connector pointer
  to the main (from the main thread) model connector
- the FastCGI structure fcgi_request moved from App to Request
- some methods for handling requests moved from App to Request
- small refactoring in main.cpp
- add Http class (a http client)
This commit is contained in:
2022-07-25 14:21:21 +02:00
parent b2d92b85a0
commit 979ef907fe
65 changed files with 7018 additions and 4437 deletions

View File

@@ -96,10 +96,14 @@
./edb.o: ../../../../winix/winixd/core/textstream.h
./edb.o: ../../../../winix/winixd/models/winixmodel.h
./edb.o: ../../../../winix/winixd/core/header.h
./edb.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./edb.o: ../../../../winix/winixd/core/compress.h
./edb.o: ../../../../winix/winixd/core/plugin.h
./edb.o: ../../../../winix/winixd/core/pluginmsg.h
./edb.o: ../../../../winix/winixd/core/plugindata.h
./edb.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./edb.o: ../../../../winix/winixd/core/mount.h
./edb.o: ../../../../winix/winixd/core/mounts.h
./edb.o: ../../../../winix/winixd/core/mountparser.h
./exportinfo.o: ../../../../winix/winixd/core/log.h exportinfo.h
./exportinfo.o: ../../../../winix/winixd/core/system.h
./exportinfo.o: ../../../../winix/winixd/core/job.h
@@ -161,12 +165,9 @@
./exportinfo.o: ../../../../winix/winixd/core/synchro.h
./exportinfo.o: ../../../../winix/winixd/core/filelog.h
./exportinfo.o: ../../../../winix/winixd/core/lock.h
./exportinfo.o: ../../../../winix/winixd/core/plugin.h
./exportinfo.o: ../../../../winix/winixd/core/pluginmsg.h
./exportinfo.o: ../../../../winix/winixd/core/plugindata.h
./exportinfo.o: ../../../../winix/winixd/core/winixbase.h
./exportinfo.o: ../../../../winix/winixd/core/dirs.h
./exportinfo.o: ../../../../winix/winixd/core/dircontainer.h
./exportinfo.o: ../../../../winix/winixd/core/jobtask.h
./exportinfo.o: ../../../../winix/winixd/core/request.h
./exportinfo.o: ../../../../winix/winixd/core/requesttypes.h
./exportinfo.o: ../../../../winix/winixd/models/item.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodel.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodelconnector.h
@@ -185,6 +186,18 @@
./exportinfo.o: ../../../../ezc/src/models.h
./exportinfo.o: ../../../../ezc/src/patternparser.h
./exportinfo.o: ../../../../winix/winixd/templates/htmltextstream.h
./exportinfo.o: ../../../../winix/winixd/core/error.h
./exportinfo.o: ../../../../winix/winixd/core/config.h
./exportinfo.o: ../../../../winix/winixd/core/textstream.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodel.h
./exportinfo.o: ../../../../winix/winixd/core/header.h
./exportinfo.o: ../../../../winix/winixd/core/compress.h
./exportinfo.o: ../../../../winix/winixd/core/winixbase.h
./exportinfo.o: ../../../../winix/winixd/core/plugin.h
./exportinfo.o: ../../../../winix/winixd/core/pluginmsg.h
./exportinfo.o: ../../../../winix/winixd/core/plugindata.h
./exportinfo.o: ../../../../winix/winixd/core/mount.h
./exportinfo.o: ../../../../winix/winixd/core/mounts.h
./exportinfo.o: ../../../../winix/winixd/db/db.h
./exportinfo.o: ../../../../winix/winixd/db/dbbase.h
./exportinfo.o: ../../../../winix/winixd/models/user.h
@@ -192,26 +205,20 @@
./exportinfo.o: ../../../../winix/winixd/core/dircontainer.h
./exportinfo.o: ../../../../winix/winixd/core/ugcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/request.h
./exportinfo.o: ../../../../winix/winixd/core/requesttypes.h
./exportinfo.o: ../../../../winix/winixd/core/error.h
./exportinfo.o: ../../../../winix/winixd/core/config.h
./exportinfo.o: ../../../../winix/winixd/core/textstream.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodel.h
./exportinfo.o: ../../../../winix/winixd/core/header.h
./exportinfo.o: ../../../../winix/winixd/core/mounts.h
./exportinfo.o: ../../../../winix/winixd/core/mount.h
./exportinfo.o: ../../../../winix/winixd/core/mountparser.h
./exportinfo.o: ../../../../winix/winixd/core/cur.h
./exportinfo.o: ../../../../winix/winixd/core/session.h
./exportinfo.o: ../../../../winix/winixd/core/rebus.h
./exportinfo.o: ../../../../winix/winixd/core/ipban.h
./exportinfo.o: ../../../../winix/winixd/core/loadavg.h
./exportinfo.o: ../../../../winix/winixd/core/dirs.h
./exportinfo.o: ../../../../winix/winixd/core/dircontainer.h
./exportinfo.o: ../../../../winix/winixd/core/crypt.h
./exportinfo.o: ../../../../winix/winixd/core/run.h
./exportinfo.o: ../../../../winix/winixd/core/users.h
./exportinfo.o: ../../../../winix/winixd/core/ugcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/lastcontainer.h
./exportinfo.o: ../../../../winix/winixd/core/cur.h
./exportinfo.o: ../../../../winix/winixd/core/session.h
./exportinfo.o: ../../../../winix/winixd/core/rebus.h
./exportinfo.o: ../../../../winix/winixd/core/ipban.h
./exportinfo.o: ../../../../winix/winixd/core/groups.h
./exportinfo.o: ../../../../winix/winixd/core/loadavg.h
./exportinfo.o: ../../../../winix/winixd/core/image.h
./exportinfo.o: ../../../../winix/winixd/core/threadmanager.h
./exportinfo.o: ../../../../winix/winixd/models/winixmodelconnector.h
@@ -355,33 +362,15 @@
./funexport.o: ../../../../winix/winixd/core/textstream.h
./funexport.o: ../../../../winix/winixd/models/winixmodel.h
./funexport.o: ../../../../winix/winixd/core/header.h
./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../winix/winixd/core/job.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/compress.h
./funexport.o: ../../../../winix/winixd/core/plugin.h
./funexport.o: ../../../../winix/winixd/core/pluginmsg.h
./funexport.o: ../../../../winix/winixd/core/plugindata.h
./funexport.o: ../../../../winix/winixd/core/dirs.h
./funexport.o: ../../../../winix/winixd/core/dircontainer.h
./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/core/mounts.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/mount.h
./funexport.o: ../../../../winix/winixd/core/mounts.h
./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/core/mountparser.h
./funexport.o: ../../../../winix/winixd/core/crypt.h
./funexport.o: ../../../../winix/winixd/core/run.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/ugcontainer.h
./funexport.o: ../../../../winix/winixd/core/lastcontainer.h
./funexport.o: ../../../../winix/winixd/core/cur.h
./funexport.o: ../../../../winix/winixd/core/session.h
./funexport.o: ../../../../winix/winixd/core/rebus.h
./funexport.o: ../../../../winix/winixd/core/ipban.h
./funexport.o: ../../../../winix/winixd/core/groups.h
./funexport.o: ../../../../winix/winixd/core/loadavg.h
./funexport.o: ../../../../winix/winixd/core/image.h
./funexport.o: ../../../../winix/winixd/core/threadmanager.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funexport.o: ../../../../winix/winixd/notify/notify.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/notify/notifypool.h
@@ -400,15 +389,34 @@
./funexport.o: ../../../../winix/winixd/notify/templatesnotify.h
./funexport.o: ../../../../winix/winixd/core/textstream.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/timezones.h
./funexport.o: ../../../../winix/winixd/core/timezone.h
./funexport.o: ../../../../winix/winixd/core/winixrequest.h
./funexport.o: ../../../../winix/winixd/core/winixsystem.h
./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../winix/winixd/core/job.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/core/jobtask.h
./funexport.o: ../../../../winix/winixd/core/cur.h
./funexport.o: ../../../../winix/winixd/core/session.h
./funexport.o: ../../../../winix/winixd/core/rebus.h
./funexport.o: ../../../../winix/winixd/core/ipban.h
./funexport.o: ../../../../winix/winixd/core/loadavg.h
./funexport.o: ../../../../winix/winixd/core/dirs.h
./funexport.o: ../../../../winix/winixd/core/dircontainer.h
./funexport.o: ../../../../winix/winixd/core/crypt.h
./funexport.o: ../../../../winix/winixd/core/run.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/ugcontainer.h
./funexport.o: ../../../../winix/winixd/core/lastcontainer.h
./funexport.o: ../../../../winix/winixd/core/groups.h
./funexport.o: ../../../../winix/winixd/core/image.h
./funexport.o: ../../../../winix/winixd/core/threadmanager.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funexport.o: ../../../../winix/winixd/core/timezones.h
./funexport.o: ../../../../winix/winixd/core/timezone.h
./funexport.o: ../../../../winix/winixd/core/cur.h
./funexport.o: ../../../../winix/winixd/core/sessionmanager.h
./funexport.o: ../../../../winix/winixd/core/sessioncontainer.h
./funexport.o: ../../../../winix/winixd/core/ipbancontainer.h
./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../winix/winixd/core/sessionidmanager.h
./funexport.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./funexport.o: ../../../../winix/winixd/core/slog.h exportinfo.h export.h
@@ -421,42 +429,35 @@
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/pluginmsg.h
./init.o: ../../../../winix/winixd/core/plugindata.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../morm/src/modelconnector.h
./init.o: ../../../../morm/src/clearer.h
./init.o: ../../../../pikotools/src/date/date.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8_templates.h
./init.o: ../../../../pikotools/src/utf8/utf8_private.h
./init.o: ../../../../morm/src/ft.h ../../../../morm/src/dbconnector.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/membuffer/membuffer.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/utf8/utf8_stream.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h
./init.o: ../../../../morm/src/queryresult.h
./init.o: ../../../../morm/src/flatconnector.h exportthread.h
./init.o: ../../../../winix/winixd/core/basethread.h message.h exportinfo.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../pikotools/src/space/spaceparser.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/convert/baseparser.h
./init.o: ../../../../pikotools/src/textstream/textstream.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/space/space.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/convert/inttostr.h
./init.o: ../../../../pikotools/src/utf8/utf8.h
./init.o: ../../../../pikotools/src/textstream/stream.h
./init.o: ../../../../pikotools/src/utf8/utf8_templates.h
./init.o: ../../../../pikotools/src/utf8/utf8_private.h
./init.o: ../../../../pikotools/src/date/date.h
./init.o: ../../../../pikotools/src/membuffer/membuffer.h
./init.o: ../../../../pikotools/src/textstream/types.h
./init.o: ../../../../pikotools/src/utf8/utf8_stream.h
./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./init.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./init.o: ../../../../pikotools/src/log/log.h
./init.o: ../../../../pikotools/src/log/filelog.h ../../../../morm/src/morm.h
./init.o: ../../../../morm/src/version.h ../../../../morm/src/morm_types.h
./init.o: ../../../../morm/src/model.h ../../../../morm/src/modelconnector.h
./init.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./init.o: ../../../../morm/src/dbconnector.h
./init.o: ../../../../morm/src/queryresult.h
./init.o: ../../../../morm/src/flatconnector.h
./init.o: ../../../../morm/src/dbexpression.h
./init.o: ../../../../morm/src/baseexpression.h
./init.o: ../../../../morm/src/modelenv.h ../../../../morm/src/modeldata.h
@@ -478,9 +479,15 @@
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/filelog.h
./init.o: ../../../../winix/winixd/core/lock.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/synchro.h
./init.o: ../../../../winix/winixd/core/mount.h exportthread.h
./init.o: ../../../../winix/winixd/core/basethread.h message.h exportinfo.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/requesttypes.h
./init.o: ../../../../winix/winixd/models/item.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
@@ -497,6 +504,15 @@
./init.o: ../../../../ezc/src/expressionparser.h ../../../../ezc/src/models.h
./init.o: ../../../../ezc/src/patternparser.h
./init.o: ../../../../winix/winixd/templates/htmltextstream.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/compress.h
./init.o: ../../../../winix/winixd/core/winixbase.h
./init.o: ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/db/db.h
./init.o: ../../../../winix/winixd/db/dbbase.h
./init.o: ../../../../winix/winixd/models/user.h
@@ -504,26 +520,20 @@
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/requesttypes.h
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/config.h
./init.o: ../../../../winix/winixd/core/textstream.h
./init.o: ../../../../winix/winixd/models/winixmodel.h
./init.o: ../../../../winix/winixd/core/header.h
./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/core/mount.h
./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/crypt.h
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
@@ -552,14 +562,12 @@
./init.o: ../../../../winix/winixd/core/error.h
./init.o: ../../../../winix/winixd/core/dirs.h funexport.h
./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/winixrequest.h
./init.o: ../../../../winix/winixd/core/winixsystem.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/sessionmanager.h
./init.o: ../../../../winix/winixd/core/sessioncontainer.h
./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/core/slog.h

View File

@@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2011-2021, Tomasz Sowa
* Copyright (c) 2011-2022, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -251,12 +251,12 @@ void Init(PluginInfo & info)
{
using namespace Export;
info.set_dependency_for(edb);
edb.set_dependency(info.functions);
edb.SetConn(info.db->GetConn());
edb.LogQueries(info.config->log_db_query);
edb.SetDirs(&info.system->dirs);
info.set_dependency_for(export_info);
export_info.set_dependency((WinixModelDeprecated*)info.functions);
export_info.SetSystem(info.system);
export_info.SetConfig(info.config);
export_info.SetEDb(&edb);