The Core Configuration Wizard is back! teH rul!
[quassel.git] / src / core / core.h
index 51237ec..6b0126c 100644 (file)
@@ -25,6 +25,7 @@
 #include <QMutex>
 #include <QString>
 #include <QVariant>
+#include <QTimer>
 #include <QTcpServer>
 #include <QTcpSocket>
 
@@ -130,6 +131,12 @@ class Core : public QObject {
      */
     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);
@@ -151,18 +158,23 @@ class Core : public QObject {
 
     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;