pub struct RuntimePeerInteractionHandle { /* private fields */ }Expand description
Runtime-backed PeerInteractionHandle impl.
Every trait method routes to the corresponding DSL input on the session’s
shared MeerkatMachine authority. After the transition lands, emitted
effects are scanned for PeerInteractionCleanup and dispatched to the
installed PeerInteractionCleanupObserver (if any) — closing the
“terminal transition → effect → shell projection cleanup” loop.
The cleanup observer is held as a Weak reference. In production the
observer is the session’s CommsRuntime, which in turn holds a strong
Arc<dyn PeerInteractionHandle> to this struct; storing the observer
strongly would create a cycle that prevents CommsRuntime::drop from
firing on session teardown (dropped listeners, leaked session-identity
claims, zombie InprocRegistry entries). Weak breaks the cycle —
once the runtime drops, upgrade() returns None and subsequent
effect dispatches become no-ops, which is the desired semantics
post-teardown.
Implementations§
Trait Implementations§
Source§impl Debug for RuntimePeerInteractionHandle
impl Debug for RuntimePeerInteractionHandle
Source§impl PeerInteractionHandle for RuntimePeerInteractionHandle
impl PeerInteractionHandle for RuntimePeerInteractionHandle
Source§fn request_sent(
&self,
corr_id: PeerCorrelationId,
to: String,
) -> Result<(), DslTransitionError>
fn request_sent( &self, corr_id: PeerCorrelationId, to: String, ) -> Result<(), DslTransitionError>
PeerRequestSent { corr_id, to }. Read moreSource§fn response_progress(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn response_progress( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
PeerResponseProgressArrived { corr_id }. Read moreSource§fn response_terminal(
&self,
corr_id: PeerCorrelationId,
disposition: CorePeerDisposition,
) -> Result<(), DslTransitionError>
fn response_terminal( &self, corr_id: PeerCorrelationId, disposition: CorePeerDisposition, ) -> Result<(), DslTransitionError>
PeerResponseTerminalArrived { corr_id, disposition }. Read moreSource§fn request_timed_out(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn request_timed_out( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
PeerRequestTimedOut { corr_id }. Read moreSource§fn request_received(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn request_received( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
PeerRequestReceived { corr_id } (inbound). Read moreSource§fn response_replied(
&self,
corr_id: PeerCorrelationId,
) -> Result<(), DslTransitionError>
fn response_replied( &self, corr_id: PeerCorrelationId, ) -> Result<(), DslTransitionError>
PeerResponseReplied { corr_id } (inbound reply sent). Read moreSource§fn outbound_state(
&self,
corr_id: PeerCorrelationId,
) -> Option<CoreOutboundState>
fn outbound_state( &self, corr_id: PeerCorrelationId, ) -> Option<CoreOutboundState>
Source§fn inbound_state(&self, corr_id: PeerCorrelationId) -> Option<CoreInboundState>
fn inbound_state(&self, corr_id: PeerCorrelationId) -> Option<CoreInboundState>
Source§fn install_cleanup_observer(
&self,
observer: Arc<dyn PeerInteractionCleanupObserver>,
)
fn install_cleanup_observer( &self, observer: Arc<dyn PeerInteractionCleanupObserver>, )
PeerInteractionCleanup, closing the loop
“terminal transition → effect → shell projection cleanup”. Read more