pub struct SessionStatusTracker { /* private fields */ }Expand description
Tracks the status of all active sessions.
Thread-safe via interior Mutex. Status changes are published
to an optional EventBus.
Implementations§
Source§impl SessionStatusTracker
impl SessionStatusTracker
Sourcepub fn with_event_bus(event_bus: EventBus) -> Self
pub fn with_event_bus(event_bus: EventBus) -> Self
Create a new tracker that publishes status changes to the event bus.
Sourcepub fn get(&self, session_id: &str) -> SessionStatus
pub fn get(&self, session_id: &str) -> SessionStatus
Get the current status of a session.
Returns SessionStatus::Idle if the session has no tracked status.
Sourcepub fn set(&self, session_id: impl Into<String>, status: SessionStatus)
pub fn set(&self, session_id: impl Into<String>, status: SessionStatus)
Set the status of a session.
Setting Idle removes the session from tracking (it’s the default).
Publishes a SessionStatusChanged event if an event bus is configured.
Sourcepub fn set_retry(
&self,
session_id: impl Into<String>,
attempt: u32,
message: impl Into<String>,
next_retry_ms: u64,
)
pub fn set_retry( &self, session_id: impl Into<String>, attempt: u32, message: impl Into<String>, next_retry_ms: u64, )
Mark a session as retrying.
Sourcepub fn list(&self) -> HashMap<String, SessionStatus>
pub fn list(&self) -> HashMap<String, SessionStatus>
Get all tracked sessions and their statuses.
Sourcepub fn active_count(&self) -> usize
pub fn active_count(&self) -> usize
Get the number of tracked (non-idle) sessions.
Sourcepub fn has_retrying(&self) -> bool
pub fn has_retrying(&self) -> bool
Check if any session is currently retrying.
Trait Implementations§
Source§impl Debug for SessionStatusTracker
impl Debug for SessionStatusTracker
Auto Trait Implementations§
impl !Freeze for SessionStatusTracker
impl !RefUnwindSafe for SessionStatusTracker
impl Send for SessionStatusTracker
impl Sync for SessionStatusTracker
impl Unpin for SessionStatusTracker
impl UnsafeUnpin for SessionStatusTracker
impl !UnwindSafe for SessionStatusTracker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more