X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fpostgresqlstorage.h;h=c11a819e64ef578e434d232829534c9dc6d74a4b;hb=32582b14a442c35d1a64131ac10792683fb06f82;hp=0d172ec196dc4cf496bf506b3a1904c55ea7d39e;hpb=9d54503555534a2c554f09a33df6afa33d6308ec;p=quassel.git diff --git a/src/core/postgresqlstorage.h b/src/core/postgresqlstorage.h index 0d172ec1..c11a819e 100644 --- a/src/core/postgresqlstorage.h +++ b/src/core/postgresqlstorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -34,25 +34,26 @@ public: PostgreSqlStorage(QObject *parent = 0); virtual ~PostgreSqlStorage(); - virtual AbstractSqlMigrationWriter *createMigrationWriter(); + virtual std::unique_ptr createMigrationWriter(); public slots: /* General */ virtual bool isAvailable() const; + virtual QString backendId() const; virtual QString displayName() const; virtual QString description() const; - virtual QStringList setupKeys() const; - virtual QVariantMap setupDefaults() const; + virtual QVariantList setupData() const; // TODO: Add functions for configuring the backlog handling, i.e. defining auto-cleanup settings etc /* User handling */ - virtual UserId addUser(const QString &user, const QString &password); + virtual UserId addUser(const QString &user, const QString &password, const QString &authenticator = "Database"); virtual bool updateUser(UserId user, const QString &password); virtual void renameUser(UserId user, const QString &newName); virtual UserId validateUser(const QString &user, const QString &password); virtual UserId getUserId(const QString &username); + virtual QString getUserAuthenticator(const UserId userid); virtual UserId internalUser(); virtual void delUser(UserId user); virtual void setUserSetting(UserId userId, const QString &settingName, const QVariant &data); @@ -116,10 +117,11 @@ protected: virtual bool setupSchemaVersion(int version); void safeExec(QSqlQuery &query); + bool beginTransaction(QSqlDatabase &db); bool beginReadOnlyTransaction(QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, const QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, const QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, QSqlDatabase &db); void deallocateQuery(const QString &queryname, const QSqlDatabase &db); inline void savePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("SAVEPOINT %1").arg(handle)); } @@ -129,8 +131,8 @@ protected: private: void bindNetworkInfo(QSqlQuery &query, const NetworkInfo &info); void bindServerInfo(QSqlQuery &query, const Network::Server &server); - QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, const QSqlDatabase &db); - inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } + QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, QSqlDatabase &db); + inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } QString _hostName; int _port; @@ -140,8 +142,6 @@ private: }; -inline void PostgreSqlStorage::safeExec(QSqlQuery &query) { query.exec(); } - // ======================================== // PostgreSqlMigration // ========================================