25 #ifndef GOBY_ACOMMS_MODEMDRIVER_UDP_DRIVER_H
26 #define GOBY_ACOMMS_MODEMDRIVER_UDP_DRIVER_H
35 #include <boost/asio/ip/udp.hpp>
55 class ModemTransmission;
73 void send_complete(
const boost::system::error_code& error, std::size_t bytes_transferred);
75 void receive_complete(
const boost::system::error_code& error, std::size_t bytes_transferred);
81 std::unique_ptr<boost::asio::ip::udp::socket> socket_;
83 std::multimap<int, boost::asio::ip::udp::endpoint> receivers_;
84 boost::asio::ip::udp::endpoint sender_;
87 static constexpr
size_t UDP_MAX_PACKET_SIZE = 65507;
89 std::array<char, UDP_MAX_PACKET_SIZE> receive_buffer_;
92 std::set<unsigned> application_ack_ids_;
94 std::uint32_t next_frame_{0};