Remove LossList::read method and add clear

This commit is contained in:
Atlante45 2015-07-29 11:09:39 -07:00
parent 18795321d7
commit 2cdaea4e73
4 changed files with 18 additions and 20 deletions

View file

@ -161,20 +161,3 @@ void LossList::write(ControlPacket& packet) {
packet.writePrimitive(pair.second);
}
}
void LossList::read(ControlPacket& packet) {
_lossList.clear();
SequenceNumber first, second;
while (packet.bytesLeftToRead() > (qint64)(2 * sizeof(SequenceNumber))) {
packet.readPrimitive(&first);
packet.readPrimitive(&second);
if (first == second) {
append(first);
} else {
append(first, second);
}
}
}

View file

@ -24,6 +24,8 @@ class LossList {
public:
LossList() {}
void clear() { _length = 0; _lossList.clear(); }
// Should always add at the end
void append(SequenceNumber seq);
void append(SequenceNumber start, SequenceNumber end);
@ -39,7 +41,6 @@ public:
SequenceNumber popFirstSequenceNumber();
void write(ControlPacket& packet);
void read(ControlPacket& packet);
private:
std::list<std::pair<SequenceNumber, SequenceNumber>> _lossList;

View file

@ -18,6 +18,7 @@
#include <SharedUtil.h>
#include "ControlPacket.h"
#include "Packet.h"
#include "Socket.h"
@ -105,7 +106,19 @@ void SendQueue::nak(SequenceNumber start, SequenceNumber end) {
void SendQueue::overrideNAKListFromPacket(ControlPacket& packet) {
QWriteLocker locker(&_naksLock);
_naks.read(packet);
_naks.clear();
SequenceNumber first, second;
while (packet.bytesLeftToRead() > (qint64)(2 * sizeof(SequenceNumber))) {
packet.readPrimitive(&first);
packet.readPrimitive(&second);
if (first == second) {
_naks.append(first);
} else {
_naks.append(first, second);
}
}
}
SequenceNumber SendQueue::getNextSequenceNumber() {

View file

@ -27,9 +27,10 @@
namespace udt {
class Socket;
class BasePacket;
class ControlPacket;
class Packet;
class Socket;
class SendQueue : public QObject {
Q_OBJECT