pub struct DaemonClient { /* private fields */ }Expand description
Control-plane client used by the CLI and reconnection tests.
Implementations§
Source§impl DaemonClient
impl DaemonClient
pub fn new(socket_path: impl AsRef<Path>) -> Self
pub async fn hello(&self) -> Result<HelloResult>
pub async fn list_sessions(&self) -> Result<Vec<SessionInfo>>
pub async fn session_info(&self, thread_id: &str) -> Result<SessionInfo>
pub async fn read_output( &self, thread_id: &str, consumer_id: &str, ) -> Result<JournalRead>
Sourcepub async fn shutdown(&self) -> Result<()>
pub async fn shutdown(&self) -> Result<()>
Ask the process behind this socket to exit after answering. Only
daemons advertising process_shutdown honor it.
Sourcepub async fn kill_session_if_idle(&self, thread_id: &str) -> Result<bool>
pub async fn kill_session_if_idle(&self, thread_id: &str) -> Result<bool>
Kill the session only if the guardian finds it idle at that moment
(no foreground command, no background shells). Returns Ok(false)
when the guardian refused because the session became active.
A guardian from a build without the capability cannot re-check under its own barrier; for it the idleness is re-read right before the kill, which shrinks the original window from a whole sweep to one RPC gap.
pub async fn kill_session(&self, thread_id: &str) -> Result<bool>
pub async fn prune_sessions( &self, idle_seconds: Option<u64>, ) -> Result<PruneResult>
pub async fn interrupt_session(&self, thread_id: &str) -> Result<()>
pub async fn interrupt_session_generation( &self, thread_id: &str, expected_generation: Option<u64>, ) -> Result<bool>
Trait Implementations§
Source§impl Clone for DaemonClient
impl Clone for DaemonClient
Auto Trait Implementations§
impl Freeze for DaemonClient
impl RefUnwindSafe for DaemonClient
impl Send for DaemonClient
impl Sync for DaemonClient
impl Unpin for DaemonClient
impl UnsafeUnpin for DaemonClient
impl UnwindSafe for DaemonClient
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more