177 private boost::noncopyable
182 using Packet_q = std::deque<Low_lvl_packet::Const_ptr>;
Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...
boost::asio::io_service Task_engine
Short-hand for boost.asio event service, the central class of boost.asio.
boost::asio::basic_waitable_timer< Fine_clock > Timer
boost.asio timer.
Fine_clock::duration Fine_duration
A high-res time duration as computed from two Fine_time_pts.
Fine_clock::time_point Fine_time_pt
A high-res time point as returned by Fine_clock::now() and suitable for precise time math in general.
The current outgoing packet pacing state, including queue of low-level packets to be sent,...
util::Timer m_slice_timer
When running, m_packet_q is non-empty, m_bytes_allowed_this_slice < data size of m_packet_q....
size_t m_bytes_allowed_this_slice
This many bytes worth of DATA packets may still be sent, at this time, within the time slice defined ...
Send_pacing_data(util::Task_engine *task_engine)
Initializes data to initial state (no active time slice).
std::deque< Low_lvl_packet::Const_ptr > Packet_q
Short-hand for FIFO of low-level packets. queue<> dumbly has no clear(), so just use deque<> directly...
Packet_q m_packet_q
Queue of low-level packets to be sent to the remote endpoint, in order in which they are to be sent,...
Fine_duration m_slice_period
The length of the current pacing time slice period; this depends on congestion window and SRTT on the...
Fine_time_pt m_slice_start
The time point at which the last pacing time slice began; or epoch if no packets sent so far (i....