Skip to main content

RemoteParticipantHandle

Struct RemoteParticipantHandle 

Source
pub struct RemoteParticipantHandle<S> { /* private fields */ }
Expand description

Remote participant entrypoint backed by protocol-crate state and canonical LPCR storage.

Records are deliberately not promised as generally successful: the reduced-B1 server surface fails fully authorized RecordAdmission and Leave closed until live claim-frontier acquisition lands (docs/design/LP-GAP-CLOSURE-GOAL.md:145).

Implementations§

Source§

impl<S: ParticipantResumeStore> RemoteParticipantHandle<S>

Source

pub fn recover_expected_operation( &self, ) -> Result<RemoteExpectedOperationRecovery, RemoteParticipantError>

Releases one unissued operation from committed cold-restored state.

§Errors

Returns RemoteParticipantError::StateUnavailable after a prior fatal durability failure.

Source

pub fn resolve_lost_operation_authority( &self, ) -> Result<RemoteLostOperationResolution, RemoteParticipantError>

Consumes operation-domain lost-authority testimony exactly once.

§Errors

Returns LPCR encode or storage failures while checkpointing the decision.

Source

pub fn take_restored_operation_abandonment( &self, ) -> Result<Option<RestoredExpectedOperationAbandonment>, RemoteParticipantError>

Takes a durable tokenless abandonment so its exact request can be re-recorded.

§Errors

Returns LPCR encode or storage failures while durably recording the take.

Source

pub fn record_transport_fate( &self, ) -> Result<RemoteReconnectPermitOutcome, RemoteParticipantError>

Records established-connection fate and returns at most one reconnect permit.

§Errors

Returns LPCR encode or storage failures while checkpointing the event.

Source

pub fn record_online_transition( &self, ) -> Result<RemoteReconnectPermitOutcome, RemoteParticipantError>

Records a proved online transition as a crate fresh event.

§Errors

Returns LPCR encode or storage failures while checkpointing issued authority.

Source

pub fn record_explicit_reconnect( &self, ) -> Result<RemoteReconnectPermitOutcome, RemoteParticipantError>

Records explicit caller action as a crate fresh event, with no timer arm.

§Errors

Returns LPCR encode or storage failures while checkpointing issued authority.

Source

pub fn recover_reconnect_permit( &self, ) -> Result<RemoteReconnectPermitRecovery, RemoteParticipantError>

Releases one unissued reconnect permit from committed cold-restored state.

§Errors

Returns RemoteParticipantError::StateUnavailable after a prior fatal failure.

Source

pub fn resolve_lost_reconnect_authority( &self, ) -> Result<RemoteLostReconnectResolution, RemoteParticipantError>

Consumes reconnect-domain lost-authority testimony exactly once.

§Errors

Returns LPCR encode or storage failures while checkpointing the resolution.

Source

pub fn reconnect( &self, permit: RemoteReconnectPermit, ) -> Result<RemoteReconnectAttemptOutcome, RemoteParticipantError>

Redeems one permit before opening one real transport connection.

§Errors

Returns LPCR encode or storage failures before or after the real attempt.

Source

pub fn record_established_transport_loss( &self, ) -> Result<RemoteTransportLossOutcome, RemoteParticipantError>

Records response and connection fates after an established transport loss.

§Errors

Returns LPCR encode or storage failures while checkpointing both decisions.

Source

pub fn replay_detach( &self, ) -> Result<RemoteDetachReplayOutcome, RemoteParticipantError>

Starts and sends the exact parked detach replay selected by the crate.

§Errors

Returns LPCR, storage, or state failures. Socket failure is a typed send outcome.

Source§

impl<S: ParticipantResumeStore> RemoteParticipantHandle<S>

Source

pub fn apply_attach( &self, attach: AttachBound, ) -> Result<RemoteReplayApplyOutcome<AttachBound>, RemoteParticipantError>

Delegates an attach supersession input with the held one-use correlation.

§Errors

Returns when no response authority exists or persistence fails.

Source

pub fn apply_leave_durable( &self, leave: LeaveCommitted, ) -> Result<RemoteReplayApplyOutcome<LeaveCommitted>, RemoteParticipantError>

Delegates a durable Leave supersession input with held correlation.

§Errors

Returns when no response authority exists or persistence fails.

Source

pub fn apply_detach_outcome( &self, outcome: DetachReplayOutcome, ) -> Result<RemoteReplayApplyOutcome<DetachReplayOutcome>, RemoteParticipantError>

Delegates one typed terminal detach outcome with held correlation.

§Errors

Returns when no response authority exists or persistence fails.

Source§

impl<S: ParticipantResumeStore> RemoteParticipantHandle<S>

Source

pub fn new( config: &RemoteConfig, store: S, ) -> Result<Self, RemoteParticipantError>

Creates and durably checkpoints a fresh unbound participant.

§Errors

Returns a typed encode or storage error before the handle is exposed.

Source

pub fn restore( config: &RemoteConfig, store: S, canonical_lpcr: &[u8], ) -> Result<Self, RemoteParticipantError>

Decodes, validates, restores, and durably records crash testimony before exposure.

§Errors

Returns typed LPCR decode/restore, encode, or storage errors.

Source

pub fn record_operation( &self, request: ClientRequest, ) -> Result<RemoteOperationRecordOutcome, RemoteParticipantError>

Runs record_operation -> commit -> LPCR persist -> into_parts exactly.

§Errors

Returns typed resume encoding or storage failures. A failed post-commit persistence leaves the handle unavailable and releases no authority.

Source

pub fn send_operation( &self, operation: RemoteParticipantOperation, ) -> Result<RemoteParticipantSendOutcome, RemoteParticipantError>

Persists issued state, writes the exact operation, and retains correlation.

§Errors

Returns typed state, LPCR, or storage failures. Transport failures are returned as a typed outcome after crate fate delegation.

Source

pub fn receive( &self, ) -> Result<RemoteParticipantInbound, RemoteParticipantError>

Receives one real participant frame and delegates every ServerValue to the crate.

§Errors

Returns transport, direction, LPCR encoding, or storage failures.

Trait Implementations§

Source§

impl<S> Debug for RemoteParticipantHandle<S>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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, 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> 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