pub struct CallerHandshake { /* private fields */ }Expand description
A driveable Caller-side SRT handshake (draft-sharabayko-srt-01 §4.3.1).
Implementations§
Source§impl CallerHandshake
impl CallerHandshake
Sourcepub fn new(own_socket_id: u32, config: HandshakeConfig) -> Self
pub fn new(own_socket_id: u32, config: HandshakeConfig) -> Self
Creates a fresh Caller handshake in CallerHandshakeState::Idle.
Sourcepub fn state(&self) -> CallerHandshakeState
pub fn state(&self) -> CallerHandshakeState
The current state.
Sourcepub fn negotiated(&self) -> Option<&NegotiatedParams>
pub fn negotiated(&self) -> Option<&NegotiatedParams>
The negotiated parameters, once CallerHandshakeState::Connected.
Sourcepub fn start(&mut self) -> Result<Vec<u8>>
pub fn start(&mut self) -> Result<Vec<u8>>
Builds the initial INDUCTION handshake (§4.3.1.1) and transitions to
CallerHandshakeState::AwaitingInductionResponse.
§Errors
Error::HandshakeOutOfSequence if called more than once.
Sourcepub fn feed(
&mut self,
packet: &ControlPacket<'_>,
) -> Result<Vec<HandshakeOutput>>
pub fn feed( &mut self, packet: &ControlPacket<'_>, ) -> Result<Vec<HandshakeOutput>>
Feeds an inbound control packet. Only meaningful while awaiting the Listener’s INDUCTION or CONCLUSION response.
§Errors
Error::UnexpectedControlPacket if packet is not a Handshake
packet; Error::HandshakeOutOfSequence if fed outside those two
states (a driver bug, not a peer failure).
Sourcepub fn feed_bytes(&mut self, bytes: &[u8]) -> Result<Vec<HandshakeOutput>>
pub fn feed_bytes(&mut self, bytes: &[u8]) -> Result<Vec<HandshakeOutput>>
Convenience wrapper: parses bytes as an ControlPacket then
Self::feeds it.
Sourcepub fn tick(&mut self) -> Vec<HandshakeOutput>
pub fn tick(&mut self) -> Vec<HandshakeOutput>
Advances retransmit timing by one caller-defined tick. If the
handshake is waiting on a peer response and
HandshakeConfig::retransmit_after_ticks have elapsed with none
arriving, re-emits the last sent packet; after
HandshakeConfig::max_retries such retransmissions, transitions to
CallerHandshakeState::TimedOut.