adapting the backlogmanagers to the new storage api
authorMarcus Eggenberger <egs@quassel-irc.org>
Sat, 29 Nov 2008 12:50:01 +0000 (13:50 +0100)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sat, 29 Nov 2008 15:42:39 +0000 (16:42 +0100)
19 files changed:
src/client/backlogrequester.cpp
src/client/clientbacklogmanager.cpp
src/client/clientbacklogmanager.h
src/client/messagemodel.cpp
src/common/backlogmanager.cpp
src/common/backlogmanager.h
src/core/SQL/SQLite/11/select_messageRange.sql [deleted file]
src/core/SQL/SQLite/11/select_messages.sql
src/core/SQL/SQLite/11/select_messagesNew.sql
src/core/SQL/SQLite/11/select_messagesOffset.sql [deleted file]
src/core/SQL/SQLite/11/select_messagesSince.sql [deleted file]
src/core/SQL/SQLite/11/select_messagesSinceOffset.sql [deleted file]
src/core/core.h
src/core/corebacklogmanager.cpp
src/core/corebacklogmanager.h
src/core/sql.qrc
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h
src/core/storage.h

index 920e564..40f574b 100644 (file)
@@ -53,6 +53,6 @@ void FixedBacklogRequester::requestBacklog() {
   setWaitingBuffers(allBuffers);
   backlogManager->emitMessagesRequested(QObject::tr("Requesting a total of up to %1 backlog messages for %2 buffers").arg(_backlogCount * allBuffers.count()).arg(allBuffers.count()));
   foreach(BufferId bufferId, allBuffers) {
   setWaitingBuffers(allBuffers);
   backlogManager->emitMessagesRequested(QObject::tr("Requesting a total of up to %1 backlog messages for %2 buffers").arg(_backlogCount * allBuffers.count()).arg(allBuffers.count()));
   foreach(BufferId bufferId, allBuffers) {
-    backlogManager->requestBacklog(bufferId, _backlogCount, -1);
+    backlogManager->requestBacklog(bufferId, -1, -1, _backlogCount);
   }
 }
   }
 }
index 8ccaa4b..8cf2af4 100644 (file)
@@ -35,9 +35,10 @@ ClientBacklogManager::ClientBacklogManager(QObject *parent)
 {
 }
 
 {
 }
 
-void ClientBacklogManager::receiveBacklog(BufferId bufferId, int limit, int offset, QVariantList msgs) {
+void ClientBacklogManager::receiveBacklog(BufferId bufferId, MsgId first, MsgId last, int limit, QVariantList msgs) {
+  Q_UNUSED(first)
+  Q_UNUSED(last)
   Q_UNUSED(limit)
   Q_UNUSED(limit)
-  Q_UNUSED(offset)
 
   if(msgs.isEmpty())
     return;
 
   if(msgs.isEmpty())
     return;
index 6051497..a3f19ae 100644 (file)
@@ -32,15 +32,13 @@ class ClientBacklogManager : public BacklogManager {
 public:
   ClientBacklogManager(QObject *parent = 0);
 
 public:
   ClientBacklogManager(QObject *parent = 0);
 
-  virtual const QMetaObject *syncMetaObject() const { return &BacklogManager::staticMetaObject; }
-
   // helper for the backlogRequester, as it isn't a QObject and can't emit itself
   inline void emitMessagesRequested(const QString &msg) const { emit messagesRequested(msg); }
 
   void reset();
 
 public slots:
   // helper for the backlogRequester, as it isn't a QObject and can't emit itself
   inline void emitMessagesRequested(const QString &msg) const { emit messagesRequested(msg); }
 
   void reset();
 
 public slots:
-  virtual void receiveBacklog(BufferId bufferId, int limit, int offset, QVariantList msgs);
+  virtual void receiveBacklog(BufferId bufferId, MsgId first, MsgId last, int limit, QVariantList msgs);
   void requestInitialBacklog();
 
 signals:
   void requestInitialBacklog();
 
 signals:
index 8dfaf01..1ece82f 100644 (file)
@@ -370,7 +370,7 @@ void MessageModel::requestBacklog(BufferId bufferId) {
                                                      .arg(requestCount)
                                                      .arg(Client::networkModel()->networkName(bufferId))
                                                      .arg(Client::networkModel()->bufferName(bufferId)));
                                                      .arg(requestCount)
                                                      .arg(Client::networkModel()->networkName(bufferId))
                                                      .arg(Client::networkModel()->bufferName(bufferId)));
-      Client::backlogManager()->requestBacklog(bufferId, requestCount, _messageList.at(i)->msgId().toInt());
+      Client::backlogManager()->requestBacklog(bufferId, -1, _messageList.at(i)->msgId(), requestCount);
       return;
     }
   }
       return;
     }
   }
index cbe21e9..bf962bf 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "backlogmanager.h"
 
 
 #include "backlogmanager.h"
 
-QVariantList BacklogManager::requestBacklog(BufferId bufferId, int limit, int offset) {
-  emit backlogRequested(bufferId, limit, offset);
+QVariantList BacklogManager::requestBacklog(BufferId bufferId, MsgId first, MsgId last, int limit) {
+  emit backlogRequested(bufferId, first, last, limit);
   return QVariantList();
 }
   return QVariantList();
 }
index bb562e5..de42741 100644 (file)
@@ -29,13 +29,14 @@ class BacklogManager : public SyncableObject {
 
 public:
   BacklogManager(QObject *parent = 0) : SyncableObject(parent) {}
 
 public:
   BacklogManager(QObject *parent = 0) : SyncableObject(parent) {}
+  inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
 
 public slots:
 
 public slots:
-  virtual QVariantList requestBacklog(BufferId bufferId, int limit = -1, int offset = -1);
-  inline virtual void receiveBacklog(BufferId, int, int, QVariantList) {};
+  virtual QVariantList requestBacklog(BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1);
+  inline virtual void receiveBacklog(BufferId, MsgId, MsgId, int, QVariantList) {};
 
 signals:
 
 signals:
-  void backlogRequested(BufferId, int, int);
+  void backlogRequested(BufferId, MsgId, MsgId, int);
 
 };
 
 
 };
 
diff --git a/src/core/SQL/SQLite/11/select_messageRange.sql b/src/core/SQL/SQLite/11/select_messageRange.sql
deleted file mode 100644 (file)
index 8951c13..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-SELECT messageid, time,  type, flags, sender, message
-FROM backlog
-JOIN buffer ON backlog.bufferid = buffer.bufferid
-JOIN sender ON backlog.senderid = sender.senderid
-WHERE buffer.bufferid = :bufferid AND backlog.messageid >= :firstmsg AND backlog.messageid <= :lastmsg
-ORDER BY messageid DESC
index 3434667..dcadad9 100644 (file)
@@ -1,6 +1,9 @@
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 SELECT messageid, time,  type, flags, sender, message
 FROM backlog
+JOIN buffer ON backlog.bufferid = buffer.bufferid
 JOIN sender ON backlog.senderid = sender.senderid
 JOIN sender ON backlog.senderid = sender.senderid
-WHERE bufferid = :bufferid
+WHERE buffer.bufferid = :bufferid
+    AND backlog.messageid >= :firstmsg
+    AND backlog.messageid < :lastmsg
 ORDER BY messageid DESC
 ORDER BY messageid DESC
-LIMIT :limit OFFSET :offset
+LIMIT :limit
index dbe9f06..e549252 100644 (file)
@@ -2,6 +2,7 @@ SELECT messageid, time,  type, flags, sender, message
 FROM backlog
 JOIN buffer ON backlog.bufferid = buffer.bufferid
 JOIN sender ON backlog.senderid = sender.senderid
 FROM backlog
 JOIN buffer ON backlog.bufferid = buffer.bufferid
 JOIN sender ON backlog.senderid = sender.senderid
-WHERE buffer.bufferid = :bufferid AND backlog.messageid >= :firstmsg
+WHERE buffer.bufferid = :bufferid
+    AND backlog.messageid >= :firstmsg
 ORDER BY messageid DESC
 LIMIT :limit
 ORDER BY messageid DESC
 LIMIT :limit
diff --git a/src/core/SQL/SQLite/11/select_messagesOffset.sql b/src/core/SQL/SQLite/11/select_messagesOffset.sql
deleted file mode 100644 (file)
index 22d3998..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SELECT count(*)
-FROM backlog
-WHERE bufferid = :bufferid AND messageid >= :messageid
diff --git a/src/core/SQL/SQLite/11/select_messagesSince.sql b/src/core/SQL/SQLite/11/select_messagesSince.sql
deleted file mode 100644 (file)
index b0545b4..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-SELECT messageid, time,  type, flags, sender, message
-FROM backlog
-JOIN sender ON backlog.senderid = sender.senderid
-WHERE bufferid = :bufferid AND time >= :since
-ORDER BY messageid DESC
-LIMIT -1 OFFSET :offset
diff --git a/src/core/SQL/SQLite/11/select_messagesSinceOffset.sql b/src/core/SQL/SQLite/11/select_messagesSinceOffset.sql
deleted file mode 100644 (file)
index 65f2cc2..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SELECT count(*)
-FROM backlog
-WHERE bufferid = :bufferid AND time >= :since
index 0395791..e991da3 100644 (file)
@@ -221,54 +221,19 @@ class Core : public QObject {
     return instance()->storage->logMessage(message);
   }
 
     return instance()->storage->logMessage(message);
   }
 
-  //! Request a certain number (or all) messages stored in a given buffer.
-  /** \note This method is threadsafe.
-   *
-   *  \param buffer   The buffer we request messages from
-   *  \param limit The number of messages we would like to receive, or -1 if we'd like all messages from that buffername
-   *  \param offset   Do not return (but DO count) messages with MsgId >= offset, if offset >= 0
-   *  \return The requested list of messages
-   */
-  static inline QList<Message> requestMsgs(UserId user, BufferId buffer, int limit = -1, int offset = -1) {
-    return instance()->storage->requestMsgs(user, buffer, limit, offset);
-  }
-
-  //! Request messages stored in a given buffer since a certain point in time.
-  /** \note This method is threadsafe.
-   *
-   *  \param buffer   The buffer we request messages from
-   *  \param since    Only return messages newer than this point in time
-   *  \param offset   Do not return messages with MsgId >= offset, if offset >= 0
-   *  \return The requested list of messages
-   */
-  static inline QList<Message> requestMsgs(UserId user, BufferId buffer, QDateTime since, int offset = -1) {
-    return instance()->storage->requestMsgs(user, buffer, since, offset);
-  }
-
-  //! Request a range of messages stored in a given buffer.
-  /** \note This method is threadsafe.
-   *
-   *  \param buffer   The buffer we request messages from
-   *  \param first    Return messages with first <= MsgId <= last
-   *  \param last     Return messages with first <= MsgId <= last
-   *  \return The requested list of messages
-   */
-  static inline QList<Message> requestMsgRange(UserId user, BufferId buffer, int first, int last) {
-    return instance()->storage->requestMsgRange(user, buffer, first, last);
-  }
-
-  //! Request all unread messages
+  //! Request a certain number messages stored in a given buffer.
   /** \param buffer   The buffer we request messages from
   /** \param buffer   The buffer we request messages from
-   *  \param first    Return messages with first <= MsgId
-   *  \param limit    Max amount of messages
+   *  \param first    if != -1 return only messages with a MsgId >= first
+   *  \param last     if != -1 return only messages with a MsgId < last
+   *  \param limit    if != -1 limit the returned list to a max of \limit entries
    *  \return The requested list of messages
    */
    *  \return The requested list of messages
    */
-  static inline QList<Message> requestNewMsgs(UserId user, BufferId bufferId, int first, int limit = -1) {
-    return instance()->storage->requestNewMsgs(user, bufferId, first, limit);
+  static inline QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) {
+    return instance()->storage->requestMsgs(user, bufferId, first, last, limit);
   }
 
   //! Request all unread messages for all buffers
   }
 
   //! Request all unread messages for all buffers
-  /** \param first    Return messages with first <= MsgId
+  /** \param first    Return messages with MsgId >= first
    *  \param limit    Max amount of messages
    *  \return The requested list of messages
    */
    *  \param limit    Max amount of messages
    *  \return The requested list of messages
    */
index c7bc8e7..bd1bc4f 100644 (file)
@@ -30,10 +30,10 @@ CoreBacklogManager::CoreBacklogManager(CoreSession *coreSession)
 {
 }
 
 {
 }
 
-QVariantList CoreBacklogManager::requestBacklog(BufferId bufferId, int limit, int offset) {
+QVariantList CoreBacklogManager::requestBacklog(BufferId bufferId, MsgId first, MsgId last, int limit) {
   QVariantList backlog;
   QList<Message> msgList;
   QVariantList backlog;
   QList<Message> msgList;
-  msgList = Core::requestMsgs(coreSession()->user(), bufferId, limit, offset);
+  msgList = Core::requestMsgs(coreSession()->user(), bufferId, first, last, limit);
 
   QList<Message>::const_iterator msgIter = msgList.constBegin();
   QList<Message>::const_iterator msgListEnd = msgList.constEnd();
 
   QList<Message>::const_iterator msgIter = msgList.constBegin();
   QList<Message>::const_iterator msgListEnd = msgList.constEnd();
index 260f99f..54d9f06 100644 (file)
@@ -31,12 +31,10 @@ class CoreBacklogManager : public BacklogManager {
 public:
   CoreBacklogManager(CoreSession *coreSession = 0);
 
 public:
   CoreBacklogManager(CoreSession *coreSession = 0);
 
-  inline virtual const QMetaObject *syncMetaObject() const { return &BacklogManager::staticMetaObject; }
-
   CoreSession *coreSession() { return _coreSession; }
 
 public slots:
   CoreSession *coreSession() { return _coreSession; }
 
 public slots:
-  virtual QVariantList requestBacklog(BufferId bufferId, int limit = -1, int offset = -1);
+  virtual QVariantList requestBacklog(BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1);
 
 private:
   CoreSession *_coreSession;
 
 private:
   CoreSession *_coreSession;
index f22a535..e8ce75e 100644 (file)
     <file>./SQL/SQLite/11/select_buffers_for_network.sql</file>
     <file>./SQL/SQLite/11/select_connected_networks.sql</file>
     <file>./SQL/SQLite/11/select_internaluser.sql</file>
     <file>./SQL/SQLite/11/select_buffers_for_network.sql</file>
     <file>./SQL/SQLite/11/select_connected_networks.sql</file>
     <file>./SQL/SQLite/11/select_internaluser.sql</file>
-    <file>./SQL/SQLite/11/select_messageRange.sql</file>
     <file>./SQL/SQLite/11/select_messages.sql</file>
     <file>./SQL/SQLite/11/select_messagesAllNew.sql</file>
     <file>./SQL/SQLite/11/select_messagesNew.sql</file>
     <file>./SQL/SQLite/11/select_messages.sql</file>
     <file>./SQL/SQLite/11/select_messagesAllNew.sql</file>
     <file>./SQL/SQLite/11/select_messagesNew.sql</file>
-    <file>./SQL/SQLite/11/select_messagesOffset.sql</file>
-    <file>./SQL/SQLite/11/select_messagesSince.sql</file>
-    <file>./SQL/SQLite/11/select_messagesSinceOffset.sql</file>
     <file>./SQL/SQLite/11/select_networkExists.sql</file>
     <file>./SQL/SQLite/11/select_networks_for_user.sql</file>
     <file>./SQL/SQLite/11/select_persistent_channels.sql</file>
     <file>./SQL/SQLite/11/select_networkExists.sql</file>
     <file>./SQL/SQLite/11/select_networks_for_user.sql</file>
     <file>./SQL/SQLite/11/select_persistent_channels.sql</file>
index 71d0ea8..0d870a6 100644 (file)
@@ -693,135 +693,23 @@ MsgId SqliteStorage::logMessage(Message msg) {
   return msgId;
 }
 
   return msgId;
 }
 
-QList<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, int limit, int offset) {
+QList<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit) {
   QList<Message> messagelist;
 
   BufferInfo bufferInfo = getBufferInfo(user, bufferId);
   if(!bufferInfo.isValid())
     return messagelist;
 
   QList<Message> messagelist;
 
   BufferInfo bufferInfo = getBufferInfo(user, bufferId);
   if(!bufferInfo.isValid())
     return messagelist;
 
-  if(offset == -1) {
-    offset = 0;
+  QSqlQuery query(logDb());
+  if(last == -1) {
+    query.prepare(queryString("select_messagesNew"));
   } else {
   } else {
-    // we have to determine the real offset first
-    QSqlQuery offsetQuery(logDb());
-    offsetQuery.prepare(queryString("select_messagesOffset"));
-
-    offsetQuery.bindValue(":bufferid", bufferId.toInt());
-    offsetQuery.bindValue(":messageid", offset);
-    safeExec(offsetQuery);
-    offsetQuery.first();
-    offset = offsetQuery.value(0).toInt();
-  }
-
-  // now let's select the messages
-  QSqlQuery msgQuery(logDb());
-  msgQuery.prepare(queryString("select_messages"));
-
-  msgQuery.bindValue(":bufferid", bufferId.toInt());
-  msgQuery.bindValue(":limit", limit);
-  msgQuery.bindValue(":offset", offset);
-  safeExec(msgQuery);
-
-  watchQuery(msgQuery);
-
-  while(msgQuery.next()) {
-    Message msg(QDateTime::fromTime_t(msgQuery.value(1).toInt()),
-                bufferInfo,
-                (Message::Type)msgQuery.value(2).toUInt(),
-                msgQuery.value(5).toString(),
-                msgQuery.value(4).toString(),
-                (Message::Flags)msgQuery.value(3).toUInt());
-    msg.setMsgId(msgQuery.value(0).toInt());
-    messagelist << msg;
+    query.prepare(queryString("select_messages"));
+    query.bindValue(":lastmsg", last.toInt());
   }
   }
-  return messagelist;
-}
-
 
 
-QList<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, QDateTime since, int offset) {
-  QList<Message> messagelist;
-
-  BufferInfo bufferInfo = getBufferInfo(user, bufferId);
-  if(!bufferInfo.isValid())
-    return messagelist;
-
-  // we have to determine the real offset first
-  QSqlQuery offsetQuery(logDb());
-  offsetQuery.prepare(queryString("select_messagesSinceOffset"));
-
-  offsetQuery.bindValue(":bufferid", bufferId.toInt());
-  offsetQuery.bindValue(":since", since.toTime_t());
-  safeExec(offsetQuery);
-  offsetQuery.first();
-  offset = offsetQuery.value(0).toInt();
-
-  // now let's select the messages
-  QSqlQuery msgQuery(logDb());
-  msgQuery.prepare(queryString("select_messagesSince"));
-  msgQuery.bindValue(":bufferid", bufferId.toInt());
-  msgQuery.bindValue(":since", since.toTime_t());
-  msgQuery.bindValue(":offset", offset);
-  safeExec(msgQuery);
-
-  watchQuery(msgQuery);
-
-  while(msgQuery.next()) {
-    Message msg(QDateTime::fromTime_t(msgQuery.value(1).toInt()),
-                bufferInfo,
-                (Message::Type)msgQuery.value(2).toUInt(),
-                msgQuery.value(5).toString(),
-                msgQuery.value(4).toString(),
-                (Message::Flags)msgQuery.value(3).toUInt());
-    msg.setMsgId(msgQuery.value(0).toInt());
-    messagelist << msg;
-  }
-
-  return messagelist;
-}
-
-
-QList<Message> SqliteStorage::requestMsgRange(UserId user, BufferId bufferId, int first, int last) {
-  QList<Message> messagelist;
-
-  BufferInfo bufferInfo = getBufferInfo(user, bufferId);
-  if(!bufferInfo.isValid())
-    return messagelist;
-
-  QSqlQuery rangeQuery(logDb());
-  rangeQuery.prepare(queryString("select_messageRange"));
-  rangeQuery.bindValue(":bufferid", bufferId.toInt());
-  rangeQuery.bindValue(":firstmsg", first);
-  rangeQuery.bindValue(":lastmsg", last);
-  safeExec(rangeQuery);
-
-  watchQuery(rangeQuery);
-
-  while(rangeQuery.next()) {
-    Message msg(QDateTime::fromTime_t(rangeQuery.value(1).toInt()),
-                bufferInfo,
-                (Message::Type)rangeQuery.value(2).toUInt(),
-                rangeQuery.value(5).toString(),
-                rangeQuery.value(4).toString(),
-                (Message::Flags)rangeQuery.value(3).toUInt());
-    msg.setMsgId(rangeQuery.value(0).toInt());
-    messagelist << msg;
-  }
-
-  return messagelist;
-}
-
-QList<Message> SqliteStorage::requestNewMsgs(UserId user, BufferId bufferId, int first, int limit) {
-  QList<Message> messagelist;
-
-  BufferInfo bufferInfo = getBufferInfo(user, bufferId);
-  if(!bufferInfo.isValid())
-    return messagelist;
-
-  QSqlQuery query(logDb());
-  query.prepare(queryString("select_messagesNew"));
   query.bindValue(":bufferid", bufferId.toInt());
   query.bindValue(":bufferid", bufferId.toInt());
-  query.bindValue(":firstmsg", first);
+  query.bindValue(":firstmsg", first.toInt());
   query.bindValue(":limit", limit);
   safeExec(query);
 
   query.bindValue(":limit", limit);
   safeExec(query);
 
@@ -837,7 +725,6 @@ QList<Message> SqliteStorage::requestNewMsgs(UserId user, BufferId bufferId, int
     msg.setMsgId(query.value(0).toInt());
     messagelist << msg;
   }
     msg.setMsgId(query.value(0).toInt());
     messagelist << msg;
   }
-
   return messagelist;
 }
 
   return messagelist;
 }
 
index 95a4e71..f1ccf7a 100644 (file)
@@ -81,10 +81,7 @@ public slots:
   /* Message handling */
 
   virtual MsgId logMessage(Message msg);
   /* Message handling */
 
   virtual MsgId logMessage(Message msg);
-  virtual QList<Message> requestMsgs(UserId user, BufferId bufferId, int limit = -1, int offset = -1);
-  virtual QList<Message> requestMsgs(UserId user, BufferId bufferId, QDateTime since, int offset = -1);
-  virtual QList<Message> requestMsgRange(UserId user, BufferId bufferId, int first, int last);
-  virtual QList<Message> requestNewMsgs(UserId user, BufferId bufferId, int first, int limit = -1);
+  virtual QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1);
   virtual QList<Message> requestAllNewMsgs(UserId user, int first, int limit = -1);
 
 protected:
   virtual QList<Message> requestAllNewMsgs(UserId user, int first, int limit = -1);
 
 protected:
index 4252059..e52a79f 100644 (file)
@@ -290,40 +290,17 @@ public slots:
    */
   virtual MsgId logMessage(Message msg) = 0;
 
    */
   virtual MsgId logMessage(Message msg) = 0;
 
-  //! Request a certain number (or all) messages stored in a given buffer.
+  //! Request a certain number messages stored in a given buffer.
   /** \param buffer   The buffer we request messages from
   /** \param buffer   The buffer we request messages from
-   *  \param limit The number of messages we would like to receive, or -1 if we'd like all messages from that buffername
-   *  \param offset   Do not return (but DO count) messages with MsgId >= offset, if offset >= 0
+   *  \param first    if != -1 return only messages with a MsgId >= first
+   *  \param last     if != -1 return only messages with a MsgId < last
+   *  \param limit    if != -1 limit the returned list to a max of \limit entries
    *  \return The requested list of messages
    */
    *  \return The requested list of messages
    */
-  virtual QList<Message> requestMsgs(UserId user, BufferId buffer, int limit = -1, int offset = -1) = 0;
-
-  //! Request messages stored in a given buffer since a certain point in time.
-  /** \param buffer   The buffer we request messages from
-   *  \param since    Only return messages newer than this point in time
-   *  \param offset   Do not return messages with MsgId >= offset, if offset >= 0
-   *  \return The requested list of messages
-   */
-  virtual QList<Message> requestMsgs(UserId user, BufferId buffer, QDateTime since, int offset = -1) = 0;
-
-  //! Request a range of messages stored in a given buffer.
-  /** \param buffer   The buffer we request messages from
-   *  \param first    Return messages with first <= MsgId <= last
-   *  \param last     Return messages with first <= MsgId <= last
-   *  \return The requested list of messages
-   */
-  virtual QList<Message> requestMsgRange(UserId user, BufferId buffer, int first, int last) = 0;
-
-  //! Request all unread messages
-  /** \param buffer   The buffer we request messages from
-   *  \param first    Return messages with first <= MsgId
-   *  \param limit    Max amount of messages
-   *  \return The requested list of messages
-   */
-  virtual QList<Message> requestNewMsgs(UserId user, BufferId bufferId, int first, int limit = -1) = 0;
+  virtual QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) = 0;
 
   //! Request all unread messages for all buffers
 
   //! Request all unread messages for all buffers
-  /** \param first    Return messages with first <= MsgId
+  /** \param first    Return messages with MsgId >= first
    *  \param limit    Max amount of messages
    *  \return The requested list of messages
    */
    *  \param limit    Max amount of messages
    *  \return The requested list of messages
    */