#ifndef UDPRECVQUEUE_H
#define UDPRECVQUEUE_H
#include "common.h"
class Connection;
class UdpRecvQueue {
public:
struct Entry {
bool received;
unsigned short size;
unsigned char data[PACKET_SIZE];
};
public:
Connection &connection;
private:
Time nextConfirmSendTime;
bool confirmRequired;
bool finalEntryAdded;
Entry entries[PACKETS_COUNT];
int current;
unsigned int currentIndex;
unsigned int endIndex;
public:
explicit UdpRecvQueue(Connection &connection);
~UdpRecvQueue();
bool recvUdp(unsigned int index, const void *data, int size);
bool sendUdpConfirm(bool force = false);
bool canSentToTcp() const;
int sendTcp();
void whenWriteToUdp(Time &t) const;
};
#endif