X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fsqlitestorage.h;h=1185f9dcbd1ded87a1fee0e6789e95197a396dcd;hb=5e5714fb2abf8feaf9cc4a27a26e86f2f9c45b30;hp=feb2c5aa05164726a7c41d08c91ee35bb8944417;hpb=029c6d402af7b00b320dd5ce48f230783a88957a;p=quassel.git diff --git a/src/core/sqlitestorage.h b/src/core/sqlitestorage.h index feb2c5aa..1185f9dc 100644 --- a/src/core/sqlitestorage.h +++ b/src/core/sqlitestorage.h @@ -34,6 +34,8 @@ public: SqliteStorage(QObject *parent = 0); virtual ~SqliteStorage(); + virtual AbstractSqlMigrationReader *createMigrationReader(); + public slots: /* General */ @@ -79,7 +81,7 @@ public slots: virtual void setAwayMessage(UserId user, NetworkId networkId, const QString &awayMsg); virtual QString userModes(UserId user, NetworkId networkId); virtual void setUserModes(UserId user, NetworkId networkId, const QString &userModes); - + /* Buffer handling */ virtual BufferInfo bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer = "", bool create = true); virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId); @@ -92,8 +94,8 @@ public slots: virtual QHash bufferLastSeenMsgIds(UserId user); /* Message handling */ - - virtual MsgId logMessage(Message msg); + virtual bool logMessage(Message &msg); + virtual bool logMessages(MessageList &msgs); virtual QList requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1); virtual QList requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1); @@ -116,4 +118,35 @@ private: static int _maxRetryCount; }; +// ======================================== +// SqliteMigration +// ======================================== +class SqliteMigrationReader : public SqliteStorage, public AbstractSqlMigrationReader { + Q_OBJECT + +public: + SqliteMigrationReader(); + + virtual bool readMo(QuasselUserMO &user); + virtual bool readMo(SenderMO &sender); + virtual bool readMo(IdentityMO &identity); + virtual bool readMo(IdentityNickMO &identityNick); + virtual bool readMo(NetworkMO &network); + virtual bool readMo(BufferMO &buffer); + virtual bool readMo(BacklogMO &backlog); + virtual bool readMo(IrcServerMO &ircserver); + virtual bool readMo(UserSettingMO &userSetting); + + virtual bool prepareQuery(MigrationObject mo); + +protected: + virtual inline bool transaction() { return logDb().transaction(); } + virtual inline void rollback() { logDb().rollback(); } + virtual inline bool commit() { return logDb().commit(); } +}; + +inline AbstractSqlMigrationReader *SqliteStorage::createMigrationReader() { + return new SqliteMigrationReader(); +} + #endif