X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fpostgresqlstorage.h;h=16fc1c819e68e7f691a0accee79bff870edbe9a9;hp=f78422a010c667c1b5593480ab13cab00451aad1;hb=5e5714fb2abf8feaf9cc4a27a26e86f2f9c45b30;hpb=aca3263f8f94e0d6640bdf857e71115151b85037 diff --git a/src/core/postgresqlstorage.h b/src/core/postgresqlstorage.h index f78422a0..16fc1c81 100644 --- a/src/core/postgresqlstorage.h +++ b/src/core/postgresqlstorage.h @@ -33,13 +33,15 @@ public: PostgreSqlStorage(QObject *parent = 0); virtual ~PostgreSqlStorage(); + virtual AbstractSqlMigrationWriter *createMigrationWriter(); + public slots: /* General */ - - bool isAvailable() const; - QString displayName() const; - QString description() const; - QVariantMap setupKeys() const; + virtual bool isAvailable() const; + virtual QString displayName() const; + virtual QString description() const; + virtual QVariantMap setupKeys() const; + virtual bool setup(const QVariantMap &settings = QVariantMap()); // TODO: Add functions for configuring the backlog handling, i.e. defining auto-cleanup settings etc @@ -147,16 +149,6 @@ class PostgreSqlMigrationWriter : public PostgreSqlStorage, public AbstractSqlMi public: PostgreSqlMigrationWriter(); - -// virtual bool writeUser(const QuasselUserMO &user); -// virtual bool writeSender(const SenderMO &sender); -// virtual bool writeIdentity(const IdentityMO &identity); -// virtual bool writeIdentityNick(const IdentityNickMO &identityNick); -// virtual bool writeNetwork(const NetworkMO &network); -// virtual bool writeBuffer(const BufferMO &buffer); -// virtual bool writeBacklog(const BacklogMO &backlog); -// virtual bool writeIrcServer(const IrcServerMO &ircserver); -// virtual bool writeUserSetting(const UserSettingMO &userSetting); virtual bool writeMo(const QuasselUserMO &user); virtual bool writeMo(const SenderMO &sender); @@ -170,10 +162,26 @@ public: bool prepareQuery(MigrationObject mo); + virtual bool postProcess(); + protected: virtual inline bool transaction() { return logDb().transaction(); } virtual inline void rollback() { logDb().rollback(); } virtual inline bool commit() { return logDb().commit(); } + +private: + // helper struct + struct Sequence { + QLatin1String table; + QLatin1String field; + Sequence(const char *table, const char *field) : table(table), field(field) {} + }; }; +inline AbstractSqlMigrationWriter *PostgreSqlStorage::createMigrationWriter() { + return new PostgreSqlMigrationWriter(); +} + + + #endif