/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
return markerLineHash;
}
-void SqliteStorage::setBufferActivity(UserId user, const BufferId &bufferId, const int &bufferActivity)
+void SqliteStorage::setBufferActivity(UserId user, BufferId bufferId, Message::Types bufferActivity)
{
QSqlDatabase db = logDb();
db.transaction();
query.prepare(queryString("update_buffer_bufferactivity"));
query.bindValue(":userid", user.toInt());
query.bindValue(":bufferid", bufferId.toInt());
- query.bindValue(":bufferactivity", bufferActivity);
+ query.bindValue(":bufferactivity", (int) bufferActivity);
lockForWrite();
safeExec(query);
}
-QHash<BufferId, int> SqliteStorage::bufferActivities(UserId user)
+QHash<BufferId, Message::Types> SqliteStorage::bufferActivities(UserId user)
{
- QHash<BufferId, int> bufferActivityHash;
+ QHash<BufferId, Message::Types> bufferActivityHash;
QSqlDatabase db = logDb();
db.transaction();
error = !watchQuery(query);
if (!error) {
while (query.next()) {
- bufferActivityHash[query.value(0).toInt()] = (Message::Type) query.value(1).toInt();
+ bufferActivityHash[query.value(0).toInt()] = Message::Types(query.value(1).toInt());
}
}
}
}
-int SqliteStorage::bufferActivity(BufferId &bufferId, MsgId &lastSeenMsgId)
+Message::Types SqliteStorage::bufferActivity(BufferId bufferId, MsgId lastSeenMsgId)
{
QSqlDatabase db = logDb();
db.transaction();
- int result = 0;
+ Message::Types result = Message::Types(0);
{
QSqlQuery query(db);
query.prepare(queryString("select_buffer_bufferactivity"));
lockForRead();
safeExec(query);
if (query.first())
- result = query.value(0).toInt();
+ result = Message::Types(query.value(0).toInt());
}
db.commit();
}
+QMap<UserId, QString> SqliteStorage::getAllAuthUserNames()
+{
+ QMap<UserId, QString> authusernames;
+
+ QSqlDatabase db = logDb();
+ db.transaction();
+ {
+ QSqlQuery query(db);
+ query.prepare(queryString("select_all_authusernames"));
+
+ lockForRead();
+ safeExec(query);
+ watchQuery(query);
+ while (query.next()) {
+ authusernames[query.value(0).toInt()] = query.value(1).toString();
+ }
+ }
+ db.commit();
+ unlock();
+ return authusernames;
+}
+
+
+QString SqliteStorage::getAuthUserName(UserId user) {
+ QString authusername;
+ QSqlQuery query(logDb());
+ query.prepare(queryString("select_authusername"));
+ query.bindValue(":userid", user.toInt());
+
+ lockForRead();
+ safeExec(query);
+ watchQuery(query);
+ unlock();
+
+ if (query.first()) {
+ authusername = query.value(0).toString();
+ }
+
+ return authusername;
+}
+
+
QString SqliteStorage::backlogFile()
{
return Quassel::configDirPath() + "quassel-storage.sqlite";
switch (query.lastError().number()) {
case 5: // SQLITE_BUSY 5 /* The database file is locked */
+ [[clang::fallthrough]];
case 6: // SQLITE_LOCKED 6 /* A table in the database is locked */
if (retryCount < _maxRetryCount)
return safeExec(query, retryCount + 1);
+ break;
default:
- return false;
+ ;
}
+ return false;
}