diff options
author | Javier <dev.git@javispedro.com> | 2015-12-14 22:07:50 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-12-14 22:07:50 +0100 |
commit | 5abd8e0359cfa1dc2437427f2f0446d8801441cb (patch) | |
tree | c02602e849cf47928411b8f0b3e9e6eb34facdc9 /sappeer.cc | |
parent | 702e018ca9e780bb076033ce5d1d370d4eb7319e (diff) | |
download | sapd-5abd8e0359cfa1dc2437427f2f0446d8801441cb.tar.gz sapd-5abd8e0359cfa1dc2437427f2f0446d8801441cb.zip |
initial ack controlflow implementation
Diffstat (limited to 'sappeer.cc')
-rw-r--r-- | sappeer.cc | 42 |
1 files changed, 21 insertions, 21 deletions
@@ -72,8 +72,8 @@ SAPConnection * SAPPeer::createServiceConnection(const QString &profile, const Q _sessions.insert(sessionId, socket); } - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionRequestFrame(request)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionRequestFrame(request)); return conn; } @@ -98,22 +98,22 @@ CapabilityPeer *SAPPeer::capabilityPeer() return findChild<CapabilityPeer*>(); } -bool SAPPeer::writeToSession(int session, const QByteArray &data) +void SAPPeer::writeDataToSession(int session, const QByteArray &data) { - if (session == SAProtocol::defaultSessionId) { - // Session is default (always open) or already open - sendFrame(SAProtocol::packFrame(session, data)); - return true; - } else { - SAPSocket *socket = _sessions.value(session, 0); - if (socket && socket->isOpen()) { - sendFrame(SAProtocol::packFrame(session, data)); - return true; - } else { - qWarning() << "Session" << session << "not open yet"; - return false; - } - } + sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameData)); +} + +void SAPPeer::writeControlToSession(int session, const QByteArray &data) +{ + sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameControl)); +} + +void SAPPeer::writeAckToSession(int session, int seqNum) +{ + SAProtocol::ControlFrame frame; + frame.type = SAProtocol::ControlFrameBlockAck; + frame.seqNum = seqNum; + writeControlToSession(session, SAProtocol::packControlFrame(frame)); } void SAPPeer::acceptServiceConnection(SAPConnectionRequest *connReq, int statusCode) @@ -133,8 +133,8 @@ void SAPPeer::acceptServiceConnection(SAPConnectionRequest *connReq, int statusC qDebug() << "Accepting service conection with status" << statusCode; - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionResponseFrame(resp)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionResponseFrame(resp)); if (statusCode == 0) { foreach (SAPSocket *socket, conn->sockets()) { @@ -243,8 +243,8 @@ void SAPPeer::handleDefaultSessionMessage(const QByteArray &message) resp.sessions.push_back(s.sessionId); } - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionResponseFrame(resp)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionResponseFrame(resp)); return; } |