Pārlūkot izejas kodu

Allow querying the size of the TCP transmit and receive buffers.

This may be useful to e.g. ensure the complete transmit buffer
is flushed before proceeding.
whitequark 7 gadi atpakaļ
vecāks
revīzija
7e2dc1a6d6
1 mainītis faili ar 14 papildinājumiem un 0 dzēšanām
  1. 14 0
      src/socket/tcp.rs

+ 14 - 0
src/socket/tcp.rs

@@ -683,6 +683,20 @@ impl<'a> TcpSocket<'a> {
         Ok(buffer.len())
     }
 
+    /// Return the amount of octets queued in the transmit buffer.
+    ///
+    /// Note that the Berkeley sockets interface does not have an equivalent of this API.
+    pub fn send_queue(&self) -> usize {
+        self.tx_buffer.len()
+    }
+
+    /// Return the amount of octets queued in the receive buffer.
+    ///
+    /// Note that the Berkeley sockets interface does not have an equivalent of this API.
+    pub fn recv_queue(&self) -> usize {
+        self.rx_buffer.len()
+    }
+
     fn set_state(&mut self, state: State) {
         if self.state != state {
             if self.remote_endpoint.addr.is_unspecified() {