FramedConn

Struct FramedConn 

Source
pub struct FramedConn { /* private fields */ }
Expand description

A framed wrapper that can send and receive larger messages than the base connection.

If a message is under the frame limit, it is just sent.

If a message is OVER the frame limit, we instead request a permit to send the frame count to the remote peer. We only begin sending frames once we receive the permit to do so.

This allows individual peers to throttle the amount of pending-completion message memory they are allocating by only issuing permits up to a configured memory threshold.

Implementations§

Source§

impl FramedConn

Source

pub async fn new( conn: Arc<Conn>, conn_recv: ConnRecv, recv_limit: Arc<Semaphore>, ) -> Result<(Self, FramedConnRecv)>

Construct a new framed wrapper around the base connection.

Source

pub fn pub_key(&self) -> &PubKey

The pub key of the remote peer this is connected to.

Source

pub fn is_using_webrtc(&self) -> bool

Returns true if we successfully connected over webrtc.

Source

pub fn get_stats(&self) -> ConnStats

Get connection statistics.

Source

pub async fn send(&self, msg: Vec<u8>) -> Result<()>

Send a message on the connection.

Trait Implementations§

Source§

impl Drop for FramedConn

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,