mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
add multithreaded
This commit is contained in:
parent
ec5e9c7350
commit
20d0eb06f6
|
@ -26,12 +26,14 @@ PlainDb::PlainDb(const QString &db_name, QList<QString> initList)
|
|||
{
|
||||
db = new QSqlDatabase();
|
||||
*db = QSqlDatabase::addDatabase("QSQLITE");
|
||||
db->setConnectOptions("QSQLITE_ENABLE_SHARED_CACHE=1");
|
||||
db->setDatabaseName(db_name);
|
||||
|
||||
if (!db->open())
|
||||
{
|
||||
qWarning() << QString("Can't open file: %1, history will not be saved!").arg(db_name);
|
||||
db->setDatabaseName(":memory:");
|
||||
db->setConnectOptions();
|
||||
db->open();
|
||||
}
|
||||
|
||||
|
|
|
@ -36,9 +36,11 @@
|
|||
#include "src/persistence/db/encrypteddb.h"
|
||||
|
||||
static HistoryKeeper *historyInstance = nullptr;
|
||||
QMutex HistoryKeeper::historyMutex;
|
||||
|
||||
HistoryKeeper *HistoryKeeper::getInstance()
|
||||
{
|
||||
historyMutex.lock();
|
||||
if (historyInstance == nullptr)
|
||||
{
|
||||
QList<QString> initLst;
|
||||
|
@ -67,6 +69,7 @@ HistoryKeeper *HistoryKeeper::getInstance()
|
|||
dbIntf = new PlainDb(path, initLst);
|
||||
historyInstance = new HistoryKeeper(dbIntf);
|
||||
}
|
||||
historyMutex.unlock();
|
||||
|
||||
return historyInstance;
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <QList>
|
||||
#include <QDateTime>
|
||||
#include <QPixmap>
|
||||
#include <QMutex>
|
||||
#include <tox/toxencryptsave.h>
|
||||
|
||||
class GenericDdInterface;
|
||||
|
@ -33,6 +34,7 @@ class HistoryKeeper
|
|||
{
|
||||
public:
|
||||
enum ChatType {ctSingle = 0, ctGroup};
|
||||
static QMutex historyMutex;
|
||||
|
||||
struct HistMessage
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user