Sfoglia il codice sorgente

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 anni fa
parent
commit
7e2dc1a6d6
1 ha cambiato i file con 14 aggiunte e 0 eliminazioni
  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() {