class SignalProxy;
struct NetworkInfo;
+class AbstractSqlMigrationReader;
+class AbstractSqlMigrationWriter;
+
class Core : public QObject {
Q_OBJECT
- public:
- static Core * instance();
+public:
+ static Core *instance();
static void destroy();
static void saveState();
/**
* \param userId The users Id
* \param settingName The Name of the Setting
- * \param default Value to return in case it's unset.
+ * \param defaultValue Value to return in case it's unset.
* \return the Value of the Setting or the default value if it is unset.
*/
- static inline QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &data = QVariant()) {
- return instance()->_storage->getUserSetting(userId, settingName, data);
+ static inline QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &defaultValue = QVariant()) {
+ return instance()->_storage->getUserSetting(userId, settingName, defaultValue);
}
/* Identity handling */
static inline QTimer &syncTimer() { return instance()->_storageSyncTimer; }
+ static const int AddClientEventId;
+
public slots:
//! Make storage data persistent
/** \note This method is threadsafe.
*/
void syncStorage();
void setupInternalClientSession(SignalProxy *proxy);
+
signals:
//! Sent when a BufferInfo is updated in storage.
void bufferInfoUpdated(UserId user, const BufferInfo &info);
//! Relay From CoreSession::sessionState(const QVariant &). Used for internal connection only
void sessionState(const QVariant &);
+protected:
+ virtual void customEvent(QEvent *event);
+
private slots:
bool startListening();
void stopListening(const QString &msg = QString());
SessionThread *createSession(UserId userId, bool restoreState = false);
void setupClientSession(QTcpSocket *socket, UserId uid);
+ void addClientHelper(QTcpSocket *socket, UserId uid);
void processClientMessage(QTcpSocket *socket, const QVariantMap &msg);
//void processCoreSetup(QTcpSocket *socket, QVariantMap &msg);
QString setupCoreForInternalUsage();
bool registerStorageBackend(Storage *);
void unregisterStorageBackends();
void unregisterStorageBackend(Storage *);
- bool migrateBackend(const QString &backend);
- bool switchBackend(const QString &backend);
+ bool selectBackend(const QString &backend);
+ void createUser();
+ void changeUserPass(const QString &username);
void saveBackendSettings(const QString &backend, const QVariantMap &settings);
QVariantMap promptForSettings(const Storage *storage);
QDateTime _startTime;
bool _configured;
+
+
+ static AbstractSqlMigrationReader *getMigrationReader(Storage *storage);
+ static AbstractSqlMigrationWriter *getMigrationWriter(Storage *storage);
+ static void stdInEcho(bool on);
+ static inline void enableStdInEcho() { stdInEcho(true); }
+ static inline void disableStdInEcho() { stdInEcho(false); }
};
#endif