renamed: WinixModel -> WinixModelDeprecated (this class will be removed)

added: WinixModel (models/winixmodel.h|cpp) - a class inheriting from morm::WinixModel, we have methods such as: get_config(), get_logger(), get_request()
       and this class will be a base class for our models
added: WinixModelConnector (models/winixmodelconnector.h|cpp) - a class inheriting from morm::WinixModelConnector
       this connector we are using instead of morm::ModelConnector - there are pointers to winix objects there (config, request, log)
added to Request: Ezc::Models models
removed from TemplatesFunctions: Ezc::Models ezc_models;
changed: ImgCrop winix functions is using its own item_tab vector now (not finished yet)
added: Item::is(), Item::link(), ItemContent::print_content()
This commit is contained in:
2021-06-16 18:07:44 +02:00
parent 9688b1a26a
commit 6dddc5e948
63 changed files with 654 additions and 225 deletions

View File

@@ -328,6 +328,9 @@ bool App::Init()
model_connector.set_flat_connector(json_connector);
model_connector.set_db_connector(postgresql_connector);
model_connector.set_logger(log);
model_connector.set_winix_config(&config);
model_connector.set_winix_request(&req);
model_connector.set_winix_logger(&log);
if( !TryToMakeDatabaseMigration() )
return false;

View File

@@ -54,18 +54,16 @@
#include "cookieparser.h"
#include "postmultiparser.h"
#include "acceptencodingparser.h"
#include "winixrequest.h"
#include "log/log.h"
#include "filelog.h"
#include "models/winixmodelconnector.h"
namespace Winix
{
class App
{
public:
@@ -166,13 +164,13 @@ private:
std::string http_header_8bit;
std::wstring empty_response;
morm::ModelConnector model_connector; // main thread model connector, each thread has its own connector
WinixModelConnector model_connector; // main thread model connector, each thread has its own connector
morm::JSONConnector json_connector;
morm::PostgreSQLConnector postgresql_connector;
// objects for main thread
WinixBase winix_base;
WinixModel winix_model;
WinixModelDeprecated winix_model;
WinixSystem winix_system;
WinixRequest winix_request;
// ///////////////////////
@@ -184,10 +182,10 @@ private:
// log_buffer for the main thread
pt::WTextStream log_buffer;
// logger only for App object
// logger only for the main thread
Log log;
// file logger, one object for every Log objects
// file logger, one object for all Log objects
FileLog file_log;
bool InitFCGI(char * sock, char * sock_user, char * sock_group);

View File

@@ -37,7 +37,7 @@
#include <pthread.h>
#include "synchro.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
@@ -47,7 +47,7 @@ namespace Winix
class BaseThread : public WinixModel
class BaseThread : public WinixModelDeprecated
{
public:

View File

@@ -61,9 +61,9 @@ void Dirs::SetNotify(Notify * pnotify)
}
void Dirs::set_dependency(WinixModel * winix_model)
void Dirs::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
dir_tab.set_dependency(winix_model);
}

View File

@@ -42,8 +42,8 @@
#include "dircontainer.h"
#include "db/db.h"
#include "request.h"
#include "winixmodel.h"
#include "models/item.h"
#include "winixmodeldeprecated.h"
@@ -57,7 +57,7 @@ class Notify;
// (we will support '..' in the future)
class Dirs : public WinixModel
class Dirs : public WinixModelDeprecated
{
public:
@@ -68,7 +68,7 @@ public:
void SetDb(Db * pdb);
void SetNotify(Notify * pnotify);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
// these methods return false if there is no such a dir
bool IsDir(long dir_id);

View File

@@ -46,9 +46,9 @@ Groups::Groups()
}
void Groups::set_dependency(WinixModel * winix_model)
void Groups::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
table.set_dependency(winix_model);
}

View File

@@ -40,7 +40,7 @@
#include "models/group.h"
#include "ugcontainer.h"
#include "db/db.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
@@ -49,7 +49,7 @@ namespace Winix
class Groups : public WinixModel
class Groups : public WinixModelDeprecated
{
typedef UGContainer<Group> Table;
@@ -57,7 +57,7 @@ Table table;
public:
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
typedef Table::Iterator Iterator;
typedef Table::SizeType SizeType;

View File

@@ -36,7 +36,8 @@
#define headerfile_winix_core_httpsimpleparser
#include <string>
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
namespace Winix
@@ -44,7 +45,7 @@ namespace Winix
class HttpSimpleParser : public WinixModel
class HttpSimpleParser : public WinixModelDeprecated
{
protected:

View File

@@ -37,7 +37,7 @@
#include <vector>
#include "ipban.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
@@ -46,7 +46,7 @@ namespace Winix
class IPBanContainer : public WinixModel
class IPBanContainer : public WinixModelDeprecated
{
public:

View File

@@ -42,8 +42,8 @@
#include <limits.h>
#include "mount.h"
#include "dirs.h"
#include "winixmodel.h"
#include "models/item.h"
#include "winixmodeldeprecated.h"
@@ -52,7 +52,7 @@ namespace Winix
class MountParser : public WinixModel
class MountParser : public WinixModelDeprecated
{
public:

View File

@@ -46,7 +46,7 @@
#include "db/db.h"
#include "request.h"
#include "mountparser.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
namespace Winix
@@ -55,7 +55,7 @@ namespace Winix
class Mounts : public WinixModel
class Mounts : public WinixModelDeprecated
{
public:

View File

@@ -66,7 +66,7 @@ void PluginInfo::set_dependency_for(WinixBase & winix_base)
set_dependency_for(&winix_base);
}
void PluginInfo::set_dependency_for(WinixModel * winix_model)
void PluginInfo::set_dependency_for(WinixModelDeprecated * winix_model)
{
plugin->SetDependencyFor(winix_model);
@@ -74,7 +74,7 @@ void PluginInfo::set_dependency_for(WinixModel * winix_model)
// CHECKME what about model_connector here?
}
void PluginInfo::set_dependency_for(WinixModel & winix_model)
void PluginInfo::set_dependency_for(WinixModelDeprecated & winix_model)
{
set_dependency_for(&winix_model);
}
@@ -232,7 +232,7 @@ void Plugin::SetDependencyFor(WinixBase * winix_base)
}
void Plugin::SetDependencyFor(WinixModel * winix_model)
void Plugin::SetDependencyFor(WinixModelDeprecated * winix_model)
{
winix_model->set_dependency(winix_request);
}

View File

@@ -54,7 +54,7 @@ class Functions;
class Templates;
class SessionManager;
class WinixModel;
class WinixModelDeprecated;
class WinixRequest;
@@ -81,7 +81,7 @@ struct Session;
// move me to a different file
// may it should be based on WinixModel?
// may it should be based on WinixModelDeprecated?
struct PluginInfo
{
// these variables are used for some purposes
@@ -134,8 +134,8 @@ struct PluginInfo
void set_dependency_for(WinixBase * winix_base);
void set_dependency_for(WinixBase & winix_base);
void set_dependency_for(WinixModel * winix_model);
void set_dependency_for(WinixModel & winix_model);
void set_dependency_for(WinixModelDeprecated * winix_model);
void set_dependency_for(WinixModelDeprecated & winix_model);
void Clear()
{
@@ -291,7 +291,7 @@ private:
bool SetDependency(PluginInfo & info);
void SetDependencyFor(WinixBase * winix_base);
void SetDependencyFor(WinixModel * winix_model);
void SetDependencyFor(WinixModelDeprecated * winix_model);
void Lock();
void Unlock();

View File

@@ -143,6 +143,7 @@ void Request::Clear()
return_info_only = false;
info.clear();
return_json = false;
models.Clear();
out_bin_stream.clear();
send_bin_stream = false;

View File

@@ -48,6 +48,7 @@
#include "space/space.h"
#include "textstream/textstream.h"
#include "outstreams.h"
#include "models.h"
namespace Winix
@@ -309,7 +310,8 @@ struct Request
// additional info added when sending the JSON answer
pt::Space info;
// models to return or to render through ezc library
Ezc::Models models;
// if set to true then the standard template system will not be used

View File

@@ -42,7 +42,7 @@
#include "session.h"
#include "cur.h"
#include "config.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
@@ -52,7 +52,7 @@ namespace Winix
class SessionContainer : public WinixModel
class SessionContainer : public WinixModelDeprecated
{
public:

View File

@@ -89,9 +89,9 @@ void SessionManager::SetLastContainer(LastContainer * plast_container)
}
void SessionManager::set_dependency(WinixModel * winix_model)
void SessionManager::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
session_tab.set_dependency(winix_model);
session_id_manager.set_dependency(winix_model);
}

View File

@@ -65,7 +65,7 @@ public:
void SetSystem(System * psystem);
void SetLastContainer(LastContainer * plast_container);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
// can return a null pointer
Session * FindSession(long id);

View File

@@ -81,9 +81,9 @@ void System::SetSessionManager(SessionManager * sm)
}
void System::set_dependency(WinixModel * winix_model)
void System::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
dirs.set_dependency(this);
mounts.set_dependency(this);

View File

@@ -64,7 +64,7 @@ class SessionManager;
// file system
class System : WinixModel
class System : WinixModelDeprecated
{
public:
@@ -109,7 +109,7 @@ public:
TimeZones time_zones;
using WinixModel::get_model_connector;
using WinixModelDeprecated::get_model_connector;
void SetCur(Cur * pcur);
//void SetConfig(Config * pconfig);
@@ -118,7 +118,7 @@ public:
void SetFunctions(Functions * pfunctions);
void SetSessionManager(SessionManager * sm);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
void Init();

View File

@@ -74,12 +74,20 @@ public:
typedef typename StringType::value_type CharType;
typedef typename StringType::value_type char_type;
typedef typename StringType::iterator iterator;
typedef typename StringType::const_iterator const_iterator;
void Clear();
void clear(); // utf8 methods call clear(), in the future Clear() will be renamed to clear()
bool Empty() const;
size_t Size() const;
void Reserve(size_t len);
iterator begin();
iterator end();
const_iterator begin() const;
const_iterator end() const;
const StringType & Str() const;
const CharType * CStr() const;
@@ -149,6 +157,12 @@ void TextStream<StringType>::Clear()
buffer.clear();
}
template<class StringType>
void TextStream<StringType>::clear()
{
Clear();
}
template<class StringType>
bool TextStream<StringType>::Empty() const
{
@@ -168,6 +182,33 @@ void TextStream<StringType>::Reserve(size_t len)
}
template<class StringType>
TextStream<StringType>::iterator TextStream<StringType>::begin()
{
return buffer.begin();
}
template<class StringType>
TextStream<StringType>::iterator TextStream<StringType>::end()
{
return buffer.end();
}
template<class StringType>
TextStream<StringType>::const_iterator TextStream<StringType>::begin() const
{
return buffer.begin();
}
template<class StringType>
TextStream<StringType>::const_iterator TextStream<StringType>::end() const
{
return buffer.end();
}
template<class StringType>
const StringType & TextStream<StringType>::Str() const
{

View File

@@ -95,6 +95,10 @@ void ThreadManager::Add(BaseThread * pbase, const wchar_t * thread_name)
data.postgresql_connector.wait_for_connection();
data.model_connector.set_db_connector(data.postgresql_connector);
data.model_connector.set_flat_connector(data.json_connector);
data.model_connector.set_winix_config(config);
data.model_connector.set_winix_logger(item.object->get_logger());
data.model_connector.set_logger(item.object->get_logger());
//data.model_connector.set_winix_request();
item.object->set_model_connector(&data.model_connector);

View File

@@ -40,15 +40,14 @@
#include "basethread.h"
#include "synchro.h"
#include "textstream/textstream.h"
#include "models/winixmodelconnector.h"
namespace Winix
{
class ThreadManager : public WinixModel
class ThreadManager : public WinixModelDeprecated
{
public:
@@ -76,7 +75,7 @@ private:
struct ThreadItemData
{
morm::ModelConnector model_connector;
WinixModelConnector model_connector;
morm::JSONConnector json_connector;
morm::PostgreSQLConnector postgresql_connector;

View File

@@ -50,9 +50,9 @@ Users::Users()
}
void Users::set_dependency(WinixModel * winix_model)
void Users::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
table.set_dependency(winix_model);
last.set_dependency(winix_model);
}

View File

@@ -41,7 +41,7 @@
#include "lastcontainer.h"
#include "cur.h"
#include "db/db.h"
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
@@ -53,13 +53,13 @@ namespace Winix
class SessionManager;
class Users : public WinixModel
class Users : public WinixModelDeprecated
{
typedef UGContainer<User> Table;
public:
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
typedef Table::Iterator Iterator;

View File

@@ -32,7 +32,7 @@
*
*/
#include "winixmodel.h"
#include "winixmodeldeprecated.h"
namespace Winix
@@ -40,44 +40,44 @@ namespace Winix
WinixModel::WinixModel()
WinixModelDeprecated::WinixModelDeprecated()
{
plugin = nullptr;
model_connector = nullptr;
}
WinixModel::~WinixModel()
WinixModelDeprecated::~WinixModelDeprecated()
{
}
void WinixModel::set_plugin(Plugin * plugin)
void WinixModelDeprecated::set_plugin(Plugin * plugin)
{
this->plugin = plugin;
}
void WinixModel::set_model_connector(morm::ModelConnector * model_connector)
void WinixModelDeprecated::set_model_connector(morm::ModelConnector * model_connector)
{
this->model_connector = model_connector;
}
morm::ModelConnector * WinixModel::get_model_connector()
morm::ModelConnector * WinixModelDeprecated::get_model_connector()
{
return model_connector;
}
void WinixModel::set_dependency(WinixBase * winix_base)
void WinixModelDeprecated::set_dependency(WinixBase * winix_base)
{
WinixBase::set_dependency(winix_base);
}
void WinixModel::set_dependency(WinixModel * winix_model)
void WinixModelDeprecated::set_dependency(WinixModelDeprecated * winix_model)
{
WinixBase::set_dependency(winix_model);
model_connector = winix_model->model_connector;
@@ -85,7 +85,7 @@ void WinixModel::set_dependency(WinixModel * winix_model)
}
Plugin * WinixModel::get_plugin()
Plugin * WinixModelDeprecated::get_plugin()
{
return plugin;
}

View File

@@ -44,12 +44,12 @@ namespace Winix
{
// may rename it to WinixConnector or WinixStorage?
class WinixModel : public WinixBase
class WinixModelDeprecated : public WinixBase
{
public:
WinixModel();
virtual ~WinixModel();
WinixModelDeprecated();
virtual ~WinixModelDeprecated();
void set_model_connector(morm::ModelConnector * model_connector);
morm::ModelConnector * get_model_connector();
@@ -57,7 +57,7 @@ public:
void set_plugin(Plugin * plugin);
void set_dependency(WinixBase * winix_base);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
// temporarily for templates, will be removed

View File

@@ -79,9 +79,9 @@ void WinixRequest::set_dependency(WinixBase * winix_base)
}
void WinixRequest::set_dependency(WinixModel * winix_model)
void WinixRequest::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
}

View File

@@ -59,7 +59,7 @@ public:
void set_dependency(WinixBase * winix_base);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
void set_dependency(WinixSystem * winix_system);
void set_dependency(WinixRequest * winix_request);

View File

@@ -62,15 +62,15 @@ void WinixSystem::set_dependency(WinixBase * winix_base)
}
void WinixSystem::set_dependency(WinixModel * winix_model)
void WinixSystem::set_dependency(WinixModelDeprecated * winix_model)
{
WinixModel::set_dependency(winix_model);
WinixModelDeprecated::set_dependency(winix_model);
}
void WinixSystem::set_dependency(WinixSystem * winix_system)
{
WinixModel::set_dependency(winix_system);
WinixModelDeprecated::set_dependency(winix_system);
system = winix_system->system;
}

View File

@@ -35,8 +35,8 @@
#ifndef headerfile_winix_core_winixsystem
#define headerfile_winix_core_winixsystem
#include "core/winixmodel.h"
#include "core/system.h"
#include "winixmodeldeprecated.h"
@@ -44,7 +44,7 @@ namespace Winix
{
class WinixSystem : public WinixModel
class WinixSystem : public WinixModelDeprecated
{
public:
@@ -54,7 +54,7 @@ public:
void set_system(System * system);
void set_dependency(WinixBase * winix_base);
void set_dependency(WinixModel * winix_model);
void set_dependency(WinixModelDeprecated * winix_model);
void set_dependency(WinixSystem * winix_system);