pub struct SqliteSessionRepository { /* private fields */ }Expand description
SQLite-backed session repository implementation.
Implementations§
Source§impl SqliteSessionRepository
impl SqliteSessionRepository
Sourcepub fn new(async_db: Arc<AsyncDatabase>) -> Self
pub fn new(async_db: Arc<AsyncDatabase>) -> Self
Creates a repository backed by the provided async database handle.
Trait Implementations§
Source§impl SessionRepository for SqliteSessionRepository
impl SessionRepository for SqliteSessionRepository
Source§fn insert_session<'life0, 'async_trait>(
&'life0 self,
session: OwnedNewSession,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn insert_session<'life0, 'async_trait>(
&'life0 self,
session: OwnedNewSession,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Inserts a newly created session record.
Source§fn update_session_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
state: &'life2 str,
exit_code: Option<i64>,
ended: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_session_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
state: &'life2 str,
exit_code: Option<i64>,
ended: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Updates the session state and optionally stores exit information.
Source§fn update_session_pid<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
pid: i64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_session_pid<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
pid: i64,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Updates the OS process identifier associated with a session.
Source§fn load_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Loads one session by identifier.
Source§fn load_active_session_for_task_step<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
step_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn load_active_session_for_task_step<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
step_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Loads the active session for a task step, if one is attached.
Source§fn list_task_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_task_sessions<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<SessionRow>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Lists all sessions associated with a task.
Source§fn acquire_writer<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn acquire_writer<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Attempts to acquire exclusive writer attachment for a client.
Source§fn attach_reader<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn attach_reader<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Attaches a read-only client to a session.
Source§fn cleanup_stale_sessions<'life0, 'async_trait>(
&'life0 self,
max_age_hours: u64,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn cleanup_stale_sessions<'life0, 'async_trait>(
&'life0 self,
max_age_hours: u64,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Cleans up sessions considered stale according to the given age threshold.
Source§fn release_attachment<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
reason: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn release_attachment<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
client_id: &'life2 str,
reason: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Releases a writer or reader attachment from a session.
Auto Trait Implementations§
impl Freeze for SqliteSessionRepository
impl RefUnwindSafe for SqliteSessionRepository
impl Send for SqliteSessionRepository
impl Sync for SqliteSessionRepository
impl Unpin for SqliteSessionRepository
impl UnsafeUnpin for SqliteSessionRepository
impl UnwindSafe for SqliteSessionRepository
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
Attempts to downcast this to
T behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
Attempts to downcast this to
T behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
Attempts to downcast this to
T behind Rc pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
Attempts to downcast this to
T behind Arc pointerSource§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
Source§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request