X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fstorage.h;h=7cbc3e3dff72c88c55c41899e28199a30a5262d9;hb=b9169a652a6854b3fa85aee8f833cb9e18a8d510;hp=5eed79cfad1fd5d7e5bddeb29338c27d7148054e;hpb=e5d6f457a0f3eef578dcb9d7e4a3db61826dc232;p=quassel.git diff --git a/src/core/storage.h b/src/core/storage.h index 5eed79cf..7cbc3e3d 100644 --- a/src/core/storage.h +++ b/src/core/storage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -392,7 +392,7 @@ public slots: * \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; + virtual void setBufferActivity(UserId id, BufferId bufferId, Message::Types type) = 0; //! Get a Hash of all buffer activity states /** This Method is called when the Quassel Core is started to restore the BufferActivities @@ -400,7 +400,7 @@ public slots: * * \param user The Owner of the buffers */ - virtual QHash bufferActivities(UserId id) = 0; + virtual QHash 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. @@ -409,7 +409,53 @@ public slots: * \param bufferId The buffer * \param lastSeenMsgId The last seen message */ - virtual int bufferActivity(BufferId &bufferId, MsgId &lastSeenMsgId) = 0; + virtual Message::Types bufferActivity(BufferId bufferId, MsgId lastSeenMsgId) = 0; + + //! Get a hash of buffers with their ciphers for a given network + /** The keys are channel names and values are ciphers (possibly empty) + * \note This method is threadsafe + * + * \param user The id of the networks owner + * \param networkId The Id of the network + */ + virtual QHash bufferCiphers(UserId user, const NetworkId &networkId) = 0; + + //! Update the cipher of a buffer + /** \note This method is threadsafe + * + * \param user The Id of the networks owner + * \param networkId The Id of the network + * \param bufferName The Cname of the buffer + * \param cipher The cipher for the buffer + */ + virtual void setBufferCipher(UserId user, const NetworkId &networkId, const QString &bufferName, const QByteArray &cipher) = 0; + + //! Update the highlight count 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 setHighlightCount(UserId id, BufferId bufferId, int count) = 0; + + //! Get a Hash of all highlight count states + /** This Method is called when the Quassel Core is started to restore the HighlightCounts + * \note This method is threadsafe. + * + * \param user The Owner of the buffers + */ + virtual QHash highlightCounts(UserId id) = 0; + + //! Get the highlight count 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 highlightCount(BufferId bufferId, MsgId lastSeenMsgId) = 0; /* Message handling */ @@ -434,6 +480,18 @@ public slots: */ virtual QList requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) = 0; + //! Request a certain number messages stored in a given buffer, matching certain filters + /** \param buffer The buffer we request messages from + * \param first if != -1 return only messages with a MsgId >= first + * \param last if != -1 return only messages with a MsgId < last + * \param limit if != -1 limit the returned list to a max of \limit entries + * \param type The Message::Types that should be returned + * \return The requested list of messages + */ + virtual QList requestMsgsFiltered(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, + int limit = -1, Message::Types type = Message::Types{-1}, + Message::Flags flags = Message::Flags{-1}) = 0; + //! Request a certain number of messages across all buffers /** \param first if != -1 return only messages with a MsgId >= first * \param last if != -1 return only messages with a MsgId < last @@ -442,6 +500,28 @@ public slots: */ virtual QList requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) = 0; + //! Request a certain number of messages across all buffers, matching certain filters + /** \param first if != -1 return only messages with a MsgId >= first + * \param last if != -1 return only messages with a MsgId < last + * \param limit Max amount of messages + * \param type The Message::Types that should be returned + * \return The requested list of messages + */ + virtual QList requestAllMsgsFiltered(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1, + Message::Types type = Message::Types{-1}, + Message::Flags flags = Message::Flags{-1}) = 0; + + //! Fetch all authusernames + /** \return Map of all current UserIds to permitted idents + */ + virtual QMap getAllAuthUserNames() = 0; + + //! Get the auth username associated with a userId + /** \param user The user to retrieve the username for + * \return The username for the user + */ + virtual QString getAuthUserName(UserId user) = 0; + signals: //! Sent when a new BufferInfo is created, or an existing one changed somehow. void bufferInfoUpdated(UserId user, const BufferInfo &);