bool SocketWire::Base::send0()

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;
	}
}