in src/cpp/RiderLink/Source/RD/src/rd_framework_cpp/src/main/wire/SocketWire.cpp [301:331]
int32_t SocketWire::Base::read_package() const
{
receive_pkg.rewind();
const auto pair = read_header();
if (pair == INVALID_HEADER)
{
logger->debug("{}: failed to read header", this->id);
return -1;
}
const auto len = pair.first;
const auto seqn = pair.second;
logger->debug("{}: read len={}, seqn={}, max_received_seqn={}", this->id, len, seqn, max_received_seqn);
receive_pkg.require_available(len);
if (!read_data_from_socket(receive_pkg.data(), len))
{
logger->debug("{}: failed to read package", this->id);
return -1;
}
send_ack(seqn);
if (seqn <= max_received_seqn && seqn != 1)
{
return true;
}
max_received_seqn = seqn;
logger->info("{}: was received package, bytes={}, seqn={}", this->id, len, seqn);
return len;
}