in src/cpp/RiderLink/Source/RD/src/rd_framework_cpp/src/main/wire/SocketWire.cpp [71:104]
bool SocketWire::Base::send0(Buffer::ByteArray const& msg, sequence_number_t seqn) const
{
try
{
std::lock_guard<decltype(socket_send_lock)> guard(socket_send_lock);
int32_t msglen = static_cast<int32_t>(msg.size());
send_package_header.rewind();
send_package_header.write_integral(msglen);
send_package_header.write_integral(seqn);
RD_ASSERT_THROW_MSG(
socket_provider->Send(send_package_header.data(), send_package_header.get_position()) == PACKAGE_HEADER_LENGTH,
this->id +
": failed to send header over the network"
", reason: " +
socket_provider->DescribeError())
RD_ASSERT_THROW_MSG(socket_provider->Send(msg.data(), msglen) == msglen, this->id +
": failed to send package over the network"
", reason: " +
socket_provider->DescribeError());
logger->info("{}: were sent {} bytes", this->id, msglen);
// RD_ASSERT_MSG(socketProvider->Flush(), "{}: failed to flush");
return true;
}
catch (std::exception const& e)
{
// async_send_buffer.pause("send0");
logger->warn("Send0 failed due to: | {}", e.what());
return false;
}
}