X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=82ab2ab2f13868fe72c09982a4527aeae9c5b6d5;hp=003d57a694246805e0e7994f09f8aae3ea937cba;hb=b9828e0dd235964b8e2e97f844f4bed3476d3bd4;hpb=41f90ea96aad92b534a982296168baff8b8da2d7 diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 003d57a6..82ab2ab2 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -933,7 +933,7 @@ QHash SqliteStorage::bufferLastSeenMsgIds(UserId user) { return lastSeenHash; } -MsgId SqliteStorage::logMessage(Message msg) { +bool SqliteStorage::logMessage(Message &msg) { QSqlQuery logMessageQuery(logDb()); logMessageQuery.prepare(queryString("insert_message")); @@ -954,15 +954,28 @@ MsgId SqliteStorage::logMessage(Message msg) { safeExec(addSenderQuery); safeExec(logMessageQuery); if(!watchQuery(logMessageQuery)) - return 0; + return false; } else { watchQuery(logMessageQuery); } } MsgId msgId = logMessageQuery.lastInsertId().toInt(); - Q_ASSERT(msgId.isValid()); - return msgId; + if(msgId.isValid()) { + msg.setMsgId(msgId); + return true; + } else { + return false; + } +} + +bool SqliteStorage::logMessages(MessageList &msgs) { + // FIXME: optimize! + for(int i = 0; i < msgs.count(); i++) { + if(!logMessage(msgs[i])) + return false; + } + return true; } QList SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit) {