1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#include "LoopbackConnection.h"
namespace netcode {
CLoopbackConnection::CLoopbackConnection() {
}
CLoopbackConnection::~CLoopbackConnection() {
}
void CLoopbackConnection::SendData(std::shared_ptr<const RawPacket> data) {
Data.push_back(data);
}
std::shared_ptr<const RawPacket> CLoopbackConnection::Peek(unsigned ahead) const {
if (ahead < Data.size())
return Data[ahead];
std::shared_ptr<const RawPacket> empty;
return empty;
}
void CLoopbackConnection::DeleteBufferPacketAt(unsigned index) {
if (index < Data.size())
Data.erase(Data.begin() + index);
}
std::shared_ptr<const RawPacket> CLoopbackConnection::GetData() {
if (!Data.empty()) {
std::shared_ptr<const RawPacket> next = Data.front();
Data.pop_front();
return next;
}
std::shared_ptr<const RawPacket> empty;
return empty;
}
void CLoopbackConnection::Flush(const bool forced) {
}
bool CLoopbackConnection::CheckTimeout(int seconds, bool initial) const {
return false;
}
bool CLoopbackConnection::CanReconnect() const {
return false;
}
bool CLoopbackConnection::NeedsReconnect() {
return false;
}
std::string CLoopbackConnection::Statistics() const {
return "Statistics for loopback connection: N/A";
}
std::string CLoopbackConnection::GetFullAddress() const {
return "Loopback";
}
bool CLoopbackConnection::HasIncomingData() const {
return !Data.empty();
}
} // namespace netcode
|