From 084eb01fb395488a0a3aee799be2b72ce11aa220 Mon Sep 17 00:00:00 2001 From: Niels Ole Salscheider Date: Sun, 12 Feb 2017 17:18:06 +0100 Subject: Implement XEP-0198: Stream Management (client only) (#99) * Some features can be available with different namespaces (e.g. SM) * Provide static functions to convert between strings and stream errors Stream management will reuse this for . * [travis] test builds using clang * Implement XEP-0198: Stream Management (client only) * QXmppOutgoingClient: Move private methods to QXmppOutgoingClientPrivate --- src/base/QXmppStream.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/base/QXmppStream.h') diff --git a/src/base/QXmppStream.h b/src/base/QXmppStream.h index 3411e2e9..c0ac1807 100644 --- a/src/base/QXmppStream.h +++ b/src/base/QXmppStream.h @@ -74,6 +74,30 @@ protected: /// \param element virtual void handleStream(const QDomElement &element) = 0; + /// Enables Stream Management acks / reqs (XEP-0198). + /// + /// \param resetSeqno Indicates if the sequence numbers should be resetted. + /// This must be done iff the stream is not resumed. + void enableStreamManagement(bool resetSequenceNumber); + + /// Returns the sequence number of the last incoming stanza (XEP-0198). + unsigned lastIncomingSequenceNumber() const; + + /// Sets the last acknowledged sequence number for outgoing stanzas (XEP-0198). + void setAcknowledgedSequenceNumber(unsigned sequenceNumber); + +private: + /// Handles an incoming acknowledgement from XEP-0198. + /// + /// \param element + void handleAcknowledgement(QDomElement &element); + + /// Sends an acknowledgement as defined in XEP-0198. + void sendAcknowledgement(); + + /// Sends an acknowledgement request as defined in XEP-0198. + void sendAcknowledgementRequest(); + public slots: virtual void disconnectFromHost(); virtual bool sendData(const QByteArray&); -- cgit v1.2.3