Skip to main content

SessionHandle

Struct SessionHandle 

Source
pub struct SessionHandle { /* private fields */ }
Expand description

Handle to a running SessionActor.

Cloning gives another caller the same mailbox and stream. When the last handle drops, the session shuts down and its Agent is dropped.

Implementations§

Source§

impl SessionHandle

Source

pub fn send(&self, request: Request) -> Result<(), SessionClosed>

Submit a request to the session’s inbox.

Fails only if the session has shut down (every handle was dropped and the actor task has ended). A Submit runs to completion before the next non-interrupt request is serviced, but Interrupt/Wake/Cancel sent during a run are handled immediately (see the actor’s delivery rules).

Source

pub fn send_from( &self, from: SessionId, request: Request, ) -> Result<(), SessionClosed>

Like SessionHandle::send, but attributed to a sender address so the recipient can attribute and policy-check the message (a peer session passes its own "agent:<id>" address).

Source

pub async fn ask(&self, request: Request) -> Result<AgentEvent, SessionClosed>

Send a request and await its reply.

ask is for requests that expect a reply: GetHistory (→ AgentEvent::History), SetModel/SetEffort (→ AgentEvent::Ack or AgentEvent::Error), Compact (→ AgentEvent::Compaction, AgentEvent::Ack, or AgentEvent::Error). It also works for Submit, replying when the run completes. Interrupts (Interrupt/Wake/Cancel) want no reply — use send; an ask on one still lands mid-run (the actor answers it Ack), so a server-side cancel is never deferred.

Fails only if the session has shut down.

Source

pub async fn ask_from( &self, from: SessionId, request: Request, ) -> Result<AgentEvent, SessionClosed>

Like SessionHandle::ask, attributed to a sender address.

Source

pub fn state(&self) -> MemberState

The session’s current run-state. Read-only, lock-free (a watch borrow), so a peers listing / roster read over N members is cheap.

Source

pub fn state_rx(&self) -> Receiver<MemberState>

A live view of the run-state, so a registry/server task can wake on a transition instead of polling. Seeded with the current value (like Registry::subscribe).

Source

pub fn subscribe(&self) -> Receiver<AgentEvent>

Subscribe to the session’s event stream. Each subscriber gets its own receiver; a lagging subscriber drops events rather than stalling the run.

Trait Implementations§

Source§

impl Clone for SessionHandle

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WasmCompatSend for T
where T: Send,

Source§

impl<T> WasmCompatSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more