async fn start_incoming_packet_pipeline<WIn, WOut, D, T, TEvt, AckIn, AckOut, AppIn, AppInErr>(
__arg0: (WOut, WIn),
decoder: Arc<D>,
ticket_proc: Arc<T>,
ticket_events: TEvt,
__arg4: (AckOut, AckIn),
app_incoming: AppIn,
counters: PeerProtocolCounterRegistry,
concurrency: usize,
)where
WIn: Stream<Item = (PeerId, Box<[u8]>)> + Send + 'static,
WOut: Sink<(PeerId, Box<[u8]>)> + Clone + Unpin + Send + 'static,
WOut::Error: Error,
D: PacketDecoder + Sync + Send + 'static,
T: UnacknowledgedTicketProcessor + Send + 'static,
TEvt: Sink<TicketEvent> + Clone + Unpin + Send + 'static,
TEvt::Error: Error,
AckIn: Sink<(OffchainPublicKey, Vec<Acknowledgement>)> + Send + Unpin + Clone + 'static,
AckIn::Error: Error,
AckOut: Sink<(OffchainPublicKey, Option<HalfKey>)> + Send + Unpin + Clone + 'static,
AckOut::Error: Error,
AppIn: Sink<(HoprPseudonym, ApplicationDataIn), Error = SinkTimeoutError<AppInErr>> + Send + 'static,
AppInErr: Error,Expand description
Performs HOPR protocol decoding of incoming packets into Application protocol packets.
wire_incoming –> decoder –> ack_outgoing (final + forwarded)
| –> wire_outgoing (forwarded)
| –> ack_incoming (forwarded)
| –> app_incoming (final)