2019-10-22 17:59:56 +03:00
|
|
|
#include "sqldbcache.h"
|
|
|
|
#include "quasarapp.h"
|
2019-10-26 20:53:47 +03:00
|
|
|
#include "sqldbwriter.h"
|
2019-10-23 20:32:13 +03:00
|
|
|
|
2019-10-22 17:59:56 +03:00
|
|
|
#include <clientprotocol.h>
|
|
|
|
|
|
|
|
#include <QDateTime>
|
2019-10-26 20:53:47 +03:00
|
|
|
#include <QtConcurrent/QtConcurrent>
|
2019-10-23 20:32:13 +03:00
|
|
|
|
2019-10-22 17:59:56 +03:00
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
namespace ClientProtocol {
|
2019-10-22 17:59:56 +03:00
|
|
|
|
|
|
|
void SqlDBCache::globalUpdateDataBasePrivate(qint64 currentTime) {
|
2019-10-26 20:53:47 +03:00
|
|
|
// for (auto item = items.begin(); item != items.end(); ++item) {
|
|
|
|
// if (SqlDBWriter::saveItem(item.value()) < 0) {
|
|
|
|
// QuasarAppUtils::Params::verboseLog("writeUpdateItemIntoDB failed when"
|
|
|
|
// " work globalUpdateDataRelease!!! id=" +
|
|
|
|
// QString::number(item.key()),
|
|
|
|
// QuasarAppUtils::VerboseLvl::Error);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// for (auto player = players.begin(); player != players.end(); ++player) {
|
|
|
|
// if (SqlDBWriter::savePlayer(player.value()) < 0) {
|
|
|
|
// QuasarAppUtils::Params::verboseLog("writeUpdatePlayerIntoDB failed when"
|
|
|
|
// " work globalUpdateDataRelease!!! id=" +
|
|
|
|
// QString::number(player.key()),
|
|
|
|
// QuasarAppUtils::VerboseLvl::Error);
|
|
|
|
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// for (auto owner = owners.begin(); owner != owners.end(); ++owner) {
|
|
|
|
// if (!SqlDBWriter::saveowners(owner.key(), owner.value())) {
|
|
|
|
// QuasarAppUtils::Params::verboseLog("UpdateInfoOfowners failed when"
|
|
|
|
// " work globalUpdateDataRelease!!! id=" +
|
|
|
|
// QString::number(owner.key()),
|
|
|
|
// QuasarAppUtils::VerboseLvl::Error);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
// lastUpdateTime = currentTime;
|
2019-10-22 17:59:56 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
void SqlDBCache::globalUpdateDataBase(SqlDBCasheWriteMode mode) {
|
|
|
|
qint64 currentTime = QDateTime::currentMSecsSinceEpoch();
|
|
|
|
|
|
|
|
if (currentTime - lastUpdateTime > updateInterval ||
|
|
|
|
static_cast<bool>(mode & SqlDBCasheWriteMode::Force)) {
|
|
|
|
|
|
|
|
if (static_cast<bool>(mode & SqlDBCasheWriteMode::On_New_Thread)) {
|
|
|
|
|
|
|
|
QtConcurrent::run([currentTime, this](){
|
|
|
|
globalUpdateDataBasePrivate(currentTime);
|
|
|
|
});
|
|
|
|
|
|
|
|
} else {
|
|
|
|
globalUpdateDataBasePrivate(currentTime);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
SqlDBCache::SqlDBCache(qint64 updateInterval) {
|
|
|
|
lastUpdateTime = QDateTime::currentMSecsSinceEpoch();
|
|
|
|
this->updateInterval = updateInterval;
|
|
|
|
}
|
|
|
|
|
|
|
|
SqlDBCache::~SqlDBCache() {
|
|
|
|
globalUpdateDataBase(SqlDBCasheWriteMode::Force);
|
|
|
|
}
|
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
SqlDBWriter *SqlDBCache::writer() const {
|
2019-10-23 20:32:13 +03:00
|
|
|
return _writer;
|
|
|
|
}
|
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
void SqlDBCache::setWriter(SqlDBWriter *writer) {
|
2019-10-23 20:32:13 +03:00
|
|
|
_writer = writer;
|
|
|
|
}
|
|
|
|
|
2019-10-27 12:08:16 +03:00
|
|
|
bool SqlDBCache::getObject(DBObject *result, const QString &table, int id) const {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
bool SqlDBCache::saveObject(DBObject *saveObject) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
bool SqlDBCache::deleteObject(const QString &table, int id) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
bool SqlDBCache::init(const QString &initDbParams) {
|
2019-10-22 17:59:56 +03:00
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
if (!_writer) {
|
2019-10-22 17:59:56 +03:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2019-10-26 20:53:47 +03:00
|
|
|
if (!_writer->initDb(initDbParams)) {
|
2019-10-22 17:59:56 +03:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
2019-10-23 20:32:13 +03:00
|
|
|
|
|
|
|
}
|