Readd files lost during rebasing, fix minor issues
[quassel.git] / src / core / sqlitestorage.h
index 6cfba17..04381e2 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-09 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  *
@@ -15,7 +15,7 @@
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
 #ifndef SQLITESTORAGE_H
@@ -35,25 +35,26 @@ public:
     SqliteStorage(QObject *parent = 0);
     virtual ~SqliteStorage();
 
-    virtual AbstractSqlMigrationReader *createMigrationReader();
+    virtual std::unique_ptr<AbstractSqlMigrationReader> createMigrationReader();
 
 public slots:
     /* General */
 
     bool isAvailable() const;
+    QString backendId() const;
     QString displayName() const;
-    virtual inline QStringList setupKeys() const { return QStringList(); }
-    virtual inline QVariantMap setupDefaults() const { return QVariantMap(); }
+    virtual inline QVariantList setupData() const { return {}; }
     QString description() 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);
@@ -96,6 +97,9 @@ public slots:
     virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
     virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
     virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user);
+    virtual void setBufferActivity(UserId id, const BufferId &bufferId, const Message::Types &type);
+    virtual QHash<BufferId, Message::Types> bufferActivities(UserId id) override;
+    virtual Message::Types bufferActivity(BufferId &bufferId, const MsgId &lastSeenMsgId);
 
     /* Message handling */
     virtual bool logMessage(Message &msg);
@@ -160,9 +164,9 @@ private:
 };
 
 
-inline AbstractSqlMigrationReader *SqliteStorage::createMigrationReader()
+inline std::unique_ptr<AbstractSqlMigrationReader> SqliteStorage::createMigrationReader()
 {
-    return new SqliteMigrationReader();
+    return std::unique_ptr<AbstractSqlMigrationReader>{new SqliteMigrationReader()};
 }