[−][src]Trait mediasoup::transport::Transport
A transport connects an endpoint with a mediasoup router and enables transmission of media in
both directions by means of Producer
, Consumer
, DataProducer
and DataConsumer
instances created on it.
mediasoup implements the following transports:
For additional methods see TransportGeneric
.
Required methods
pub fn id(&self) -> TransportId
[src]
Transport id.
pub fn router_id(&self) -> RouterId
[src]
Router id.
pub fn app_data(&self) -> &AppData
[src]
Custom application data.
pub fn closed(&self) -> bool
[src]
Whether the transport is closed.
#[must_use]pub fn produce<'life0, 'async_trait>(
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Instructs the router to receive audio or video RTP (or SRTP depending on the transport). This is the way to inject media into mediasoup.
Transport will be kept alive as long as at least one producer instance is alive.
Notes on usage
Check the RTP Parameters and Capabilities section for more details (TypeScript-oriented, but concepts apply here as well).
#[must_use]pub fn consume<'life0, 'async_trait>(
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Instructs the router to send audio or video RTP (or SRTP depending on the transport). This is the way to extract media from mediasoup.
Transport will be kept alive as long as at least one consumer instance is alive.
Notes on usage
Check the RTP Parameters and Capabilities section for more details (TypeScript-oriented, but concepts apply here as well).
When creating a consumer it's recommended to set ConsumerOptions::paused
to true
, then
transmit the consumer parameters to the consuming endpoint and, once the consuming endpoint
has created its local side consumer, unpause the server side consumer using the
Consumer::resume()
method.
Reasons for create the server side consumer in paused
mode:
- If the remote endpoint is a WebRTC browser or application and it receives a RTP packet of
the new consumer before the remote
RTCPeerConnection
is ready to process it (this is, before the remote consumer is created in the remote endpoint) it may happen that theRTCPeerConnection
will wrongly associate the SSRC of the received packet to an already existing SDPm=
section, so the imminent creation of the new consumer and its associatedm=
section will fail.- Related issue.
- Also, when creating a video consumer, this is an optimization to make it possible for the
consuming endpoint to render the video as far as possible. If the server side consumer was
created with
paused: false
, mediasoup will immediately request a key frame to the producer and that key frame may reach the consuming endpoint even before it's ready to consume it, generating "black" video until the device requests a keyframe by itself.
#[must_use]pub fn produce_data<'life0, 'async_trait>(
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Instructs the router to receive data messages. Those messages can be delivered by an
endpoint via SCTP protocol (AKA DataChannel
in WebRTC) or can be directly sent from the Rust application if the transport is a
DirectTransport
.
Transport will be kept alive as long as at least one data producer instance is alive.
#[must_use]pub fn consume_data<'life0, 'async_trait>(
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Instructs the router to send data messages to the endpoint via SCTP protocol (AKA
DataChannel
in WebRTC)
or directly to the Rust process if the transport is a
DirectTransport
.
Transport will be kept alive as long as at least one data consumer instance is alive.
#[must_use]pub fn enable_trace_event<'life0, 'async_trait>(
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Instructs the transport to emit "trace" events. For monitoring purposes. Use with caution.
pub fn on_new_producer(
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
Callback is called when a new producer is created.
pub fn on_new_consumer(
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
Callback is called when a new consumer is created.
pub fn on_new_data_producer(
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
Callback is called when a new data producer is created.
pub fn on_new_data_consumer(
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
Callback is called when a new data consumer is created.
pub fn on_trace(
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
pub fn on_router_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
Callback is called when the router this transport belongs to is closed for whatever reason.
The transport itself is also closed. on_transport_close
callbacks are also called on all
its producers and consumers.
pub fn on_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
Callback is called when the router is closed for whatever reason.
Implementors
impl Transport for DirectTransport
[src]
pub fn id(&self) -> TransportId
[src]
Transport id.
pub fn router_id(&self) -> RouterId
[src]
pub fn app_data(&self) -> &AppData
[src]
Custom application data.
pub fn closed(&self) -> bool
[src]
pub fn produce<'life0, 'async_trait>(
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Create a Producer.
Transport will be kept alive as long as at least one producer instance is alive.
pub fn consume<'life0, 'async_trait>(
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Create a Consumer.
Transport will be kept alive as long as at least one consumer instance is alive.
pub fn produce_data<'life0, 'async_trait>(
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Create a DataProducer.
Transport will be kept alive as long as at least one data producer instance is alive.
pub fn consume_data<'life0, 'async_trait>(
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Create a DataConsumer.
Transport will be kept alive as long as at least one data consumer instance is alive.
pub fn enable_trace_event<'life0, 'async_trait>(
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn on_new_producer(
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_consumer(
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_producer(
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_consumer(
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_trace(
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
pub fn on_router_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
pub fn on_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
impl Transport for PipeTransport
[src]
pub fn id(&self) -> TransportId
[src]
pub fn router_id(&self) -> RouterId
[src]
pub fn app_data(&self) -> &AppData
[src]
pub fn closed(&self) -> bool
[src]
pub fn produce<'life0, 'async_trait>(
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume<'life0, 'async_trait>(
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn produce_data<'life0, 'async_trait>(
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume_data<'life0, 'async_trait>(
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn enable_trace_event<'life0, 'async_trait>(
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn on_new_producer(
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_consumer(
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_producer(
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_consumer(
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_trace(
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
pub fn on_router_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
pub fn on_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
impl Transport for PlainTransport
[src]
pub fn id(&self) -> TransportId
[src]
pub fn router_id(&self) -> RouterId
[src]
pub fn app_data(&self) -> &AppData
[src]
pub fn closed(&self) -> bool
[src]
pub fn produce<'life0, 'async_trait>(
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume<'life0, 'async_trait>(
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn produce_data<'life0, 'async_trait>(
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume_data<'life0, 'async_trait>(
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn enable_trace_event<'life0, 'async_trait>(
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn on_new_producer(
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_consumer(
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_producer(
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_consumer(
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_trace(
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
pub fn on_router_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
pub fn on_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
impl Transport for WebRtcTransport
[src]
pub fn id(&self) -> TransportId
[src]
pub fn router_id(&self) -> RouterId
[src]
pub fn app_data(&self) -> &AppData
[src]
pub fn closed(&self) -> bool
[src]
pub fn produce<'life0, 'async_trait>(
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
producer_options: ProducerOptions
) -> Pin<Box<dyn Future<Output = Result<Producer, ProduceError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume<'life0, 'async_trait>(
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
consumer_options: ConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<Consumer, ConsumeError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn produce_data<'life0, 'async_trait>(
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_producer_options: DataProducerOptions
) -> Pin<Box<dyn Future<Output = Result<DataProducer, ProduceDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn consume_data<'life0, 'async_trait>(
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
data_consumer_options: DataConsumerOptions
) -> Pin<Box<dyn Future<Output = Result<DataConsumer, ConsumeDataError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn enable_trace_event<'life0, 'async_trait>(
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
types: Vec<TransportTraceEventType>
) -> Pin<Box<dyn Future<Output = Result<(), RequestError>> + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
pub fn on_new_producer(
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Producer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_consumer(
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&Consumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_producer(
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataProducer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_new_data_consumer(
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&DataConsumer) + Send + Sync + 'static>
) -> HandlerId
pub fn on_trace(
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn Fn(&TransportTraceEventData) + Send + Sync + 'static>
) -> HandlerId
pub fn on_router_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
pub fn on_close(
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId
[src]
&self,
callback: Box<dyn FnOnce() + Send + 'static>
) -> HandlerId