* \param settings Hostname, port, username, password, ...
* \return True if and only if the storage provider was initialized successfully.
*/
- virtual bool setup(const QVariantMap &settings = QVariantMap()) = 0;
+ virtual bool setup(const QVariantMap &settings = QVariantMap(),
+ const QProcessEnvironment &environment = {},
+ bool loadFromEnvironment = false) = 0;
//! Initialize the storage provider
/** \param settings Hostname, port, username, password, ...
* \return the State the storage backend is now in (see Storage::State)
*/
- virtual State init(const QVariantMap &settings = QVariantMap()) = 0;
+ virtual State init(const QVariantMap &settings = QVariantMap(),
+ const QProcessEnvironment &environment = {},
+ bool loadFromEnvironment = false) = 0;
//! Makes temp data persistent
/** This Method is periodically called by the Quassel Core to make temporary
*/
virtual QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &data = QVariant()) = 0;
+ //! Store core state
+ /**
+ * \param data Active Sessions
+ */
+ virtual void setCoreState(const QVariantList &data) = 0;
+
+ //! Retrieve core state
+ /**
+ * \param default Value to return in case it's unset.
+ * \return Active Sessions
+ */
+ virtual QVariantList getCoreState(const QVariantList &data = QVariantList()) = 0;
+
/* Identity handling */
virtual IdentityId createIdentity(UserId user, CoreIdentity &identity) = 0;
virtual bool updateIdentity(UserId user, const CoreIdentity &identity) = 0;
//! Sent when a user has been removed
void userRemoved(UserId);
+ //! Emitted when database schema upgrade starts or ends
+ void dbUpgradeInProgress(bool inProgress);
+
protected:
QString hashPassword(const QString &password);
bool checkHashedPassword(const UserId user, const QString &password, const QString &hashedPassword, const Storage::HashVersion version);