+QHash<QString, QString> Core::persistentChannels(UserId user, const NetworkId &networkId) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->persistentChannels(user, networkId);
+}
+
+void Core::setChannelPersistent(UserId user, const NetworkId &networkId, const QString &channel, bool isJoined) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->setChannelPersistent(user, networkId, channel, isJoined);
+}
+
+void Core::setPersistentChannelKey(UserId user, const NetworkId &networkId, const QString &channel, const QString &key) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->setPersistentChannelKey(user, networkId, channel, key);
+}
+
+BufferInfo Core::bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->getBufferInfo(user, networkId, type, buffer);
+}
+
+BufferInfo Core::getBufferInfo(UserId user, const BufferId &bufferId) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->getBufferInfo(user, bufferId);
+}
+
+MsgId Core::storeMessage(const Message &message) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->logMessage(message);
+}
+
+QList<Message> Core::requestMsgs(BufferInfo buffer, int lastmsgs, int offset) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->requestMsgs(buffer, lastmsgs, offset);
+}
+
+QList<Message> Core::requestMsgs(BufferInfo buffer, QDateTime since, int offset) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->requestMsgs(buffer, since, offset);
+}
+
+QList<Message> Core::requestMsgRange(BufferInfo buffer, int first, int last) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->requestMsgRange(buffer, first, last);
+}
+
+QList<BufferInfo> Core::requestBuffers(UserId user, QDateTime since) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->requestBuffers(user, since);
+}
+
+bool Core::removeBuffer(const UserId &user, const BufferId &bufferId) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->removeBuffer(user, bufferId);
+}
+
+BufferId Core::renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->renameBuffer(user, networkId, newName, oldName);
+}
+
+void Core::setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->setBufferLastSeen(user, bufferId, seenDate);
+}
+
+QHash<BufferId, QDateTime> Core::bufferLastSeenDates(UserId user) {
+ QMutexLocker locker(&mutex);
+ return instance()->storage->bufferLastSeenDates(user);
+}
+
+/*** Network Management ***/
+