X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcore.h;h=0814e7c2f6825d21236084876381130221b0c9ad;hp=fd082780a14a83792eef9e65233a2d815f6c306c;hb=b9169a652a6854b3fa85aee8f833cb9e18a8d510;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf diff --git a/src/core/core.h b/src/core/core.h index fd082780..0814e7c2 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -273,6 +273,33 @@ public: } + //! 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 + */ + static inline QHash bufferCiphers(UserId user, const NetworkId &networkId) + { + return instance()->_storage->bufferCiphers(user, networkId); + } + + + //! 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 + */ + static inline void setBufferCipher(UserId user, const NetworkId &networkId, const QString &bufferName, const QByteArray &cipher) + { + return instance()->_storage->setBufferCipher(user, networkId, bufferName, cipher); + } + + //! Update the key of a channel /** \note This method is threadsafe * @@ -402,6 +429,22 @@ public: } + //! 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 + */ + static inline 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}) + { + return instance()->_storage->requestMsgsFiltered(user, bufferId, first, last, limit, type, flags); + } + + //! 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 @@ -414,6 +457,21 @@ public: } + //! 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 + */ + static inline 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}) + { + return instance()->_storage->requestAllMsgsFiltered(user, first, last, limit, type, flags); + } + + //! Request a list of all buffers known to a user. /** This method is used to get a list of all buffers we have stored a backlog from. * \note This method is threadsafe. @@ -493,6 +551,20 @@ public: return instance()->_storage->setBufferLastSeenMsg(user, bufferId, msgId); } + //! Get the auth username associated with a userId + /** \param user The user to retrieve the username for + * \return The username for the user + */ + static inline QString getAuthUserName(UserId user) { + return instance()->_storage->getAuthUserName(user); + } + + //! Get a usable sysident for the given user in oidentd-strict mode + /** \param user The user to retrieve the sysident for + * \return The authusername + */ + QString strictSysIdent(UserId user) const; + //! Get a Hash of all last seen message ids /** This Method is called when the Quassel Core is started to restore the lastSeenMsgIds @@ -565,6 +637,39 @@ public: return instance()->_storage->bufferActivity(bufferId, lastSeenMsgId); } + //! Update the highlight count for a Buffer + /** This Method is used to make the highlight count 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 + */ + static inline void setHighlightCount(UserId user, BufferId bufferId, int highlightCount) { + return instance()->_storage->setHighlightCount(user, bufferId, highlightCount); + } + + + //! Get a Hash of all highlight count states + /** This Method is called when the Quassel Core is started to restore the highlight count + * \note This method is threadsafe. + * + * \param user The Owner of the buffers + */ + static inline QHash highlightCounts(UserId user) { + return instance()->_storage->highlightCounts(user); + } + //! Get the highlight count states for a buffer + /** This method is used to load the highlight count of a buffer when its last seen message changes. + * \note This method is threadsafe. + * + * \param bufferId The buffer + * \param lastSeenMsgId The last seen message + */ + static inline int highlightCount(BufferId bufferId, MsgId lastSeenMsgId) { + return instance()->_storage->highlightCount(bufferId, lastSeenMsgId); + } + static inline QDateTime startTime() { return instance()->_startTime; } static inline bool isConfigured() { return instance()->_configured; } static bool sslSupported(); @@ -576,6 +681,8 @@ public: */ static bool reloadCerts(); + static void cacheSysIdent(); + static QVariantList backendInfo(); static QVariantList authenticatorInfo(); @@ -659,6 +766,7 @@ private: DeferredSharedPtr _storage; ///< Active storage backend DeferredSharedPtr _authenticator; ///< Active authenticator QTimer _storageSyncTimer; + QMap _authUserNames; #ifdef HAVE_SSL SslServer _server, _v6server;