diff options
Diffstat (limited to 'saprotocol.h')
-rw-r--r-- | saprotocol.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/saprotocol.h b/saprotocol.h index 79c6bcd..8d78dc4 100644 --- a/saprotocol.h +++ b/saprotocol.h @@ -91,8 +91,7 @@ public: static Frame unpackFrame(const QByteArray &data); static QByteArray packFrame(const Frame& frame); - static QByteArray packFrame(quint16 sessionId, const QByteArray &data); - + static QByteArray packFrame(quint16 sessionId, const QByteArray &data, FrameType type = FrameData); struct DataFrame { bool withSeqNum; // (not actually present in frame) @@ -105,6 +104,23 @@ public: static DataFrame unpackDataFrame(const QByteArray &data, bool withSeqNum); static QByteArray packDataFrame(const DataFrame& frame); + enum ControlFrameType { + ControlFrameImmediateAck = 0, + ControlFrameBlockAck = 1, + ControlFrameNak = 2 + }; + + typedef QPair<quint16, quint16> SeqNumRange; + + struct ControlFrame { + ControlFrameType type; + QList<SeqNumRange> seqNums; // Used for Naks only + quint16 seqNum; + }; + + static ControlFrame unpackControlFrame(const QByteArray &data); + static QByteArray packControlFrame(const ControlFrame& frame); + /* Default session messages */ enum DefaultSessionMessageType { |