pub struct NetworkRelay { /* private fields */ }Expand description
A Relay backed by a remote SyncTransport, scoped to one Parslee
identity. One per device; share the transport (Arc) across devices.
Implementations§
Source§impl NetworkRelay
impl NetworkRelay
Trait Implementations§
Source§impl Relay for NetworkRelay
impl Relay for NetworkRelay
Source§fn register(&mut self, device_id: &str) -> Result<RosterEntry, RelayError>
fn register(&mut self, device_id: &str) -> Result<RosterEntry, RelayError>
Enroll (or touch) a device on the roster. Idempotent; push/pull/ack
auto-register on first contact.
Source§fn push(
&mut self,
device_id: &str,
ops: &[OpRecord],
) -> Result<PushOutcome, RelayError>
fn push( &mut self, device_id: &str, ops: &[OpRecord], ) -> Result<PushOutcome, RelayError>
Admit
device_id’s own journal-durable ops (in seq order) onto its
relay-held chain. Contract (B1, binding): the caller transmits only
ops that are already journal-durable on the device.Source§fn pull(
&mut self,
device_id: &str,
since: &Frontier,
) -> Result<PullResult, RelayError>
fn pull( &mut self, device_id: &str, since: &Frontier, ) -> Result<PullResult, RelayError>
Every retained op above
since (per-device seq cursor) + the latest
checkpoint pointer.Source§fn ack(
&mut self,
device_id: &str,
frontier: Hlc,
) -> Result<AckOutcome, RelayError>
fn ack( &mut self, device_id: &str, frontier: Hlc, ) -> Result<AckOutcome, RelayError>
Record a device’s fold frontier. Contract (B4, binding): the device
acks only what it has DURABLY folded (journaled), never merely
received.
Source§fn checkpoint_put(
&mut self,
device_id: &str,
checkpoint: &Checkpoint,
) -> Result<bool, RelayError>
fn checkpoint_put( &mut self, device_id: &str, checkpoint: &Checkpoint, ) -> Result<bool, RelayError>
Store a device-computed checkpoint. Verified, deduped on
checkpoint_hash (whole-record content address — contract from B4).
Returns false when the identical checkpoint was already stored.Source§fn checkpoint_get(&mut self) -> Result<Option<Checkpoint>, RelayError>
fn checkpoint_get(&mut self) -> Result<Option<Checkpoint>, RelayError>
The latest stored checkpoint (dominance-monotone pointer), if any.
Source§fn roster(&mut self) -> Result<Vec<RosterEntry>, RelayError>
fn roster(&mut self) -> Result<Vec<RosterEntry>, RelayError>
The device registry.
Source§fn stable_frontier(&mut self) -> Result<Option<Hlc>, RelayError>
fn stable_frontier(&mut self) -> Result<Option<Hlc>, RelayError>
min(acked) over active roster devices; None while any active
device has never acked (nothing is droppable then).Auto Trait Implementations§
impl !RefUnwindSafe for NetworkRelay
impl !UnwindSafe for NetworkRelay
impl Freeze for NetworkRelay
impl Send for NetworkRelay
impl Sync for NetworkRelay
impl Unpin for NetworkRelay
impl UnsafeUnpin for NetworkRelay
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