+ virtual BufferInfo bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "", bool create = true);
+ virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId);
+ virtual QList<BufferInfo> requestBuffers(UserId user);
+ virtual QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId);
+ virtual bool removeBuffer(const UserId &user, const BufferId &bufferId);
+ virtual bool renameBuffer(const UserId &user, const BufferId &bufferId, const QString &newName);
+ virtual bool mergeBuffersPermanently(const UserId &user, const BufferId &bufferId1, const BufferId &bufferId2);
+ virtual void setBufferLastSeenMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
+ virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
+ virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
+ virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user);
+ /**
+ * Sets the last known valid message ID for the given buffer.
+ *
+ * This limits LastSeenMsgIds from being set to message IDs in the future, improving performance
+ * when searching for messages in the backlog.
+ *
+ * @see SqliteStorage::setBufferLastSeenMsg()
+ *
+ * @param bufferId[in] ID of the Buffer
+ * @param msgId[in] ID of latest message for this buffer
+ */
+ virtual void setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId);