Implement database backend for buffer-activity patch
[quassel.git] / src / core / storage.h
index fec8d86..5eed79c 100644 (file)
@@ -384,6 +384,33 @@ public slots:
      */
     virtual QHash<BufferId, MsgId> bufferMarkerLineMsgIds(UserId user) = 0;
 
+    //! Update the BufferActivity for a Buffer
+    /** This Method is used to make the activity state of a Buffer persistent
+     *  \note This method is threadsafe.
+     *
+     * \param user      The Owner of that Buffer
+     * \param bufferId  The buffer id
+     * \param MsgId     The Message id where the marker line should be placed
+     */
+    virtual void setBufferActivity(UserId id, const BufferId &bufferId, const int &type) = 0;
+
+    //! Get a Hash of all buffer activity states
+    /** This Method is called when the Quassel Core is started to restore the BufferActivities
+     *  \note This method is threadsafe.
+     *
+     * \param user      The Owner of the buffers
+     */
+    virtual QHash<BufferId, int> bufferActivities(UserId id) = 0;
+
+    //! Get the bitset of buffer activity states for a buffer
+    /** This method is used to load the activity state of a buffer when its last seen message changes.
+     *  \note This method is threadsafe.
+     *
+     * \param bufferId The buffer
+     * \param lastSeenMsgId     The last seen message
+     */
+    virtual int bufferActivity(BufferId &bufferId, MsgId &lastSeenMsgId) = 0;
+
     /* Message handling */
 
     //! Store a Message in the storage backend and set its unique Id.