projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Lots of new internal stuff (breaking protocol):
[quassel.git]
/
src
/
core
/
sqlitestorage.cpp
diff --git
a/src/core/sqlitestorage.cpp
b/src/core/sqlitestorage.cpp
index
1548085
..
3176ec4
100644
(file)
--- a/
src/core/sqlitestorage.cpp
+++ b/
src/core/sqlitestorage.cpp
@@
-558,26
+558,26
@@
BufferId SqliteStorage::renameBuffer(const UserId &user, const NetworkId &networ
return BufferId();
}
return BufferId();
}
-void SqliteStorage::setBufferLastSeen
(UserId user, const BufferId &bufferId, const QDateTime &seenDate
) {
+void SqliteStorage::setBufferLastSeen
Msg(UserId user, const BufferId &bufferId, const MsgId &msgId
) {
QSqlQuery *query = cachedQuery("update_buffer_lastseen");
query->bindValue(":userid", user.toInt());
query->bindValue(":bufferid", bufferId.toInt());
QSqlQuery *query = cachedQuery("update_buffer_lastseen");
query->bindValue(":userid", user.toInt());
query->bindValue(":bufferid", bufferId.toInt());
- query->bindValue(":lastseen
", seenDate.toTime_
t());
+ query->bindValue(":lastseen
msgid", msgId.toIn
t());
query->exec();
watchQuery(query);
}
query->exec();
watchQuery(query);
}
-QHash<BufferId,
QDateTime> SqliteStorage::bufferLastSeenDate
s(UserId user) {
- QHash<BufferId,
QDateTime
> lastSeenHash;
+QHash<BufferId,
MsgId> SqliteStorage::bufferLastSeenMsgId
s(UserId user) {
+ QHash<BufferId,
MsgId
> lastSeenHash;
QSqlQuery query(logDb());
QSqlQuery query(logDb());
- query.prepare(queryString("select_buffer_lastseen_
dat
es"));
+ query.prepare(queryString("select_buffer_lastseen_
messag
es"));
query.bindValue(":userid", user.toInt());
query.exec();
if(!watchQuery(&query))
return lastSeenHash;
while(query.next()) {
query.bindValue(":userid", user.toInt());
query.exec();
if(!watchQuery(&query))
return lastSeenHash;
while(query.next()) {
- lastSeenHash[query.value(0).toInt()] =
QDateTime::fromTime_t(query.value(1).toUInt()
);
+ lastSeenHash[query.value(0).toInt()] =
query.value(1).toInt(
);
}
return lastSeenHash;
}
}
return lastSeenHash;
}
@@
-612,11
+612,16
@@
MsgId SqliteStorage::logMessage(Message msg) {
return msgId;
}
return msgId;
}
-QList<Message> SqliteStorage::requestMsgs(
BufferInfo buffer
, int lastmsgs, int offset) {
+QList<Message> SqliteStorage::requestMsgs(
UserId user, BufferId bufferId
, int lastmsgs, int offset) {
QList<Message> messagelist;
QList<Message> messagelist;
+
+ BufferInfo bufferInfo = getBufferInfo(user, bufferId);
+ if(!bufferInfo.isValid())
+ return messagelist;
+
// we have to determine the real offset first
QSqlQuery *offsetQuery = cachedQuery("select_messagesOffset");
// we have to determine the real offset first
QSqlQuery *offsetQuery = cachedQuery("select_messagesOffset");
- offsetQuery->bindValue(":bufferid", buffer
.bufferId()
.toInt());
+ offsetQuery->bindValue(":bufferid", buffer
Id
.toInt());
offsetQuery->bindValue(":messageid", offset);
offsetQuery->exec();
offsetQuery->first();
offsetQuery->bindValue(":messageid", offset);
offsetQuery->exec();
offsetQuery->first();
@@
-624,7
+629,7
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o
// now let's select the messages
QSqlQuery *msgQuery = cachedQuery("select_messages");
// now let's select the messages
QSqlQuery *msgQuery = cachedQuery("select_messages");
- msgQuery->bindValue(":bufferid", buffer
.bufferId()
.toInt());
+ msgQuery->bindValue(":bufferid", buffer
Id
.toInt());
msgQuery->bindValue(":limit", lastmsgs);
msgQuery->bindValue(":offset", offset);
msgQuery->exec();
msgQuery->bindValue(":limit", lastmsgs);
msgQuery->bindValue(":offset", offset);
msgQuery->exec();
@@
-633,7
+638,7
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o
while(msgQuery->next()) {
Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()),
while(msgQuery->next()) {
Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()),
- buffer,
+ buffer
Info
,
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
@@
-645,11
+650,16
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o
}
}
-QList<Message> SqliteStorage::requestMsgs(
BufferInfo buffer
, QDateTime since, int offset) {
+QList<Message> SqliteStorage::requestMsgs(
UserId user, BufferId bufferId
, QDateTime since, int offset) {
QList<Message> messagelist;
QList<Message> messagelist;
+
+ BufferInfo bufferInfo = getBufferInfo(user, bufferId);
+ if(!bufferInfo.isValid())
+ return messagelist;
+
// we have to determine the real offset first
QSqlQuery *offsetQuery = cachedQuery("select_messagesSinceOffset");
// we have to determine the real offset first
QSqlQuery *offsetQuery = cachedQuery("select_messagesSinceOffset");
- offsetQuery->bindValue(":bufferid", buffer
.bufferId()
.toInt());
+ offsetQuery->bindValue(":bufferid", buffer
Id
.toInt());
offsetQuery->bindValue(":since", since.toTime_t());
offsetQuery->exec();
offsetQuery->first();
offsetQuery->bindValue(":since", since.toTime_t());
offsetQuery->exec();
offsetQuery->first();
@@
-657,7
+667,7
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in
// now let's select the messages
QSqlQuery *msgQuery = cachedQuery("select_messagesSince");
// now let's select the messages
QSqlQuery *msgQuery = cachedQuery("select_messagesSince");
- msgQuery->bindValue(":bufferid", buffer
.bufferId()
.toInt());
+ msgQuery->bindValue(":bufferid", buffer
Id
.toInt());
msgQuery->bindValue(":since", since.toTime_t());
msgQuery->bindValue(":offset", offset);
msgQuery->exec();
msgQuery->bindValue(":since", since.toTime_t());
msgQuery->bindValue(":offset", offset);
msgQuery->exec();
@@
-666,7
+676,7
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in
while(msgQuery->next()) {
Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()),
while(msgQuery->next()) {
Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()),
- buffer,
+ buffer
Info
,
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
(Message::Type)msgQuery->value(2).toUInt(),
msgQuery->value(5).toString(),
msgQuery->value(4).toString(),
@@
-679,10
+689,15
@@
QList<Message> SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in
}
}
-QList<Message> SqliteStorage::requestMsgRange(
BufferInfo buffer
, int first, int last) {
+QList<Message> SqliteStorage::requestMsgRange(
UserId user, BufferId bufferId
, int first, int last) {
QList<Message> messagelist;
QList<Message> messagelist;
+
+ BufferInfo bufferInfo = getBufferInfo(user, bufferId);
+ if(!bufferInfo.isValid())
+ return messagelist;
+
QSqlQuery *rangeQuery = cachedQuery("select_messageRange");
QSqlQuery *rangeQuery = cachedQuery("select_messageRange");
- rangeQuery->bindValue(":bufferid", buffer
.bufferId()
.toInt());
+ rangeQuery->bindValue(":bufferid", buffer
Id
.toInt());
rangeQuery->bindValue(":firstmsg", first);
rangeQuery->bindValue(":lastmsg", last);
rangeQuery->exec();
rangeQuery->bindValue(":firstmsg", first);
rangeQuery->bindValue(":lastmsg", last);
rangeQuery->exec();
@@
-691,7
+706,7
@@
QList<Message> SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int
while(rangeQuery->next()) {
Message msg(QDateTime::fromTime_t(rangeQuery->value(1).toInt()),
while(rangeQuery->next()) {
Message msg(QDateTime::fromTime_t(rangeQuery->value(1).toInt()),
- buffer,
+ buffer
Info
,
(Message::Type)rangeQuery->value(2).toUInt(),
rangeQuery->value(5).toString(),
rangeQuery->value(4).toString(),
(Message::Type)rangeQuery->value(2).toUInt(),
rangeQuery->value(5).toString(),
rangeQuery->value(4).toString(),
@@
-731,7
+746,7
@@
bool SqliteStorage::init(const QVariantMap &settings) {
return false;
if(!checkMigratedQuery.first())
return false;
if(!checkMigratedQuery.first())
- return
false;
+ return
true; // table is empty -> no work to be done
QString passType = checkMigratedQuery.value(0).toString().toLower();
if(passType == "text")
QString passType = checkMigratedQuery.value(0).toString().toLower();
if(passType == "text")