#include <QMutex>
#include <QString>
#include <QVariant>
+#include <QTimer>
#include <QTcpServer>
#include <QTcpSocket>
*/
static QList<BufferInfo> requestBuffers(UserId user, QDateTime since = QDateTime());
+ public slots:
+ //! Make storage data persistent
+ /** \note This method is threadsafe.
+ */
+ void syncStorage();
+
signals:
//! Sent when a BufferInfo is updated in storage.
void bufferInfoUpdated(UserId user, const BufferInfo &info);
SessionThread *createSession(UserId userId, bool restoreState = false);
void setupClientSession(QTcpSocket *socket, UserId uid);
- void processCoreSetup(QTcpSocket *socket, QVariantMap &msg);
+ void processClientMessage(QTcpSocket *socket, const QVariantMap &msg);
+ //void processCoreSetup(QTcpSocket *socket, QVariantMap &msg);
+ QString setupCore(const QVariant &setupData);
- QStringList availableStorageProviders();
+ bool registerStorageBackend(Storage *);
+ void unregisterStorageBackend(Storage *);
- UserId guiUser;
QHash<UserId, SessionThread *> sessions;
Storage *storage;
+ QTimer _storageSyncTimer;
QTcpServer server; // TODO: implement SSL
QHash<QTcpSocket *, quint32> blocksizes;
QHash<QTcpSocket *, QVariantMap> clientInfo;
+ QHash<QString, Storage *> _storageBackends;
+
QDateTime startTime;
bool configured;