pub struct ConnectionLifecycle { /* private fields */ }Expand description
Owns the SDK connection lifecycle state and emits validated transitions.
Implementations§
Source§impl ConnectionLifecycle
impl ConnectionLifecycle
Sourcepub fn new(reconnect_config: ReconnectConfig) -> Self
pub fn new(reconnect_config: ReconnectConfig) -> Self
Creates a lifecycle in the ConnectionState::Connecting state.
Sourcepub const fn state(&self) -> &ConnectionState
pub const fn state(&self) -> &ConnectionState
Returns the current connection state.
Sourcepub const fn reconnect_config(&self) -> ReconnectConfig
pub const fn reconnect_config(&self) -> ReconnectConfig
Returns the reconnect backoff configuration.
Sourcepub fn observe(
&mut self,
observer: impl FnMut(&ConnectionEvent) + Send + 'static,
)
pub fn observe( &mut self, observer: impl FnMut(&ConnectionEvent) + Send + 'static, )
Registers an observer that is called after each successful transition.
Sourcepub fn connect(&mut self) -> Result<(), SdkError>
pub fn connect(&mut self) -> Result<(), SdkError>
Transitions from ConnectionState::Disconnected to connecting.
§Errors
Returns SdkError when the lifecycle is not disconnected.
Sourcepub fn reconnect<J>(&mut self, jitter: &mut J) -> Result<Duration, SdkError>where
J: ReconnectJitter + ?Sized,
pub fn reconnect<J>(&mut self, jitter: &mut J) -> Result<Duration, SdkError>where
J: ReconnectJitter + ?Sized,
Transitions to reconnecting and returns the next retry delay.
The first reconnect attempt after a successful connection uses attempt
zero. Each subsequent reconnect attempt increments the counter until a
successful Self::connected transition resets it.
§Errors
Returns SdkError when reconnecting from the current state is invalid or
when the jitter source exceeds the allowed jitter range.