newly created buffer views are previewed properly in the settings dialog
[quassel.git] / src / core / storage.h
index 1ce0079..9bf9a0a 100644 (file)
@@ -102,11 +102,33 @@ class Storage : public QObject {
      */
     virtual UserId validateUser(const QString &user, const QString &password) = 0;
 
+    //! Determine the UserId of the internal user
+    /** \return A valid UserId if the password matches the username; 0 else
+     */
+    virtual UserId internalUser() = 0;
+
     //! Remove a core user from storage.
     /** \param user     The userid to delete
      */
     virtual void delUser(UserId user) = 0;
 
+    //! Store a user setting persistently
+    /**
+     * \param userId       The users Id
+     * \param settingName  The Name of the Setting
+     * \param data         The Value
+     */
+    virtual void setUserSetting(UserId userId, const QString &settingName, const QVariant &data) = 0;
+  
+    //! Retrieve a persistent user setting
+    /**
+     * \param userId       The users Id
+     * \param settingName  The Name of the Setting
+     * \param default      Value to return in case it's unset.
+     * \return the Value of the Setting or the default value if it is unset.
+     */
+    virtual QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &data = QVariant()) = 0;
+  
     /* Network handling */
 
     //! Create a new Network in the storage backend and return it unique Id
@@ -219,6 +241,15 @@ class Storage : public QObject {
      */
     virtual QList<BufferInfo> requestBuffers(UserId user) = 0;
 
+    //! Request a list of BufferIds for a given NetworkId
+    /** \note This method is threadsafe.
+     *
+     *  \param user  The user whose buffers we request
+     *  \param networkId  The NetworkId of the network in question
+     *  \return List of BufferIds belonging to the Network
+     */
+    virtual QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) = 0;
+
     //! Remove permanently a buffer and it's content from the storage backend
     /** This call cannot be reverted!
      *  \param user      The user who is the owner of the buffer