pub struct Restreamer { /* private fields */ }Expand description
Shared restreamer state.
Implementations§
Source§impl Restreamer
impl Restreamer
pub fn new( buffer_limits: BufferLimits, journal: Arc<dyn NodeJournal>, core_token: impl Into<String>, keys: Option<RestreamerKeys>, ) -> Self
pub fn set_keys(&self, keys: RestreamerKeys)
pub fn uplink_notify(&self) -> Arc<Notify> ⓘ
pub fn peers(&self) -> &UplinkPeers
pub fn upstream_public_keys(&self) -> Option<(PublicKeyBytes, PublicKeyBytes)>
Sourcepub fn ever_pushed_to_core(&self) -> bool
pub fn ever_pushed_to_core(&self) -> bool
Invariant: C2 never opens connections to core.
Sourcepub fn admit_from_node(
&self,
node_id: &str,
channel_id: u32,
payload: Vec<u8>,
) -> Result<EnqueueOutcome, RestreamerError>
pub fn admit_from_node( &self, node_id: &str, channel_id: u32, payload: Vec<u8>, ) -> Result<EnqueueOutcome, RestreamerError>
Admit one opaque DATA payload from a node (outer layer already optional).
If keys are configured, payload is treated as outer-sealed and stripped.
pub fn open_channel(&self, node_id: &str, channel_id: u32, kind: ChannelKind)
pub fn ack(&self, node_id: &str, channel_id: u32, seq: u64)
pub fn window_credit(&self, node_id: &str, channel_id: u32) -> u32
Sourcepub fn resume(
&self,
node_id: &str,
channel_id: u32,
after: u64,
) -> Result<Vec<DrainEnvelope>, RestreamerError>
pub fn resume( &self, node_id: &str, channel_id: u32, after: u64, ) -> Result<Vec<DrainEnvelope>, RestreamerError>
Produce drain envelopes for RESUME(after=N). Recovers gaps from the node journal.
Sourcepub async fn resume_with_uplink(
&self,
node_id: &str,
channel_id: u32,
after: u64,
) -> Result<Vec<DrainEnvelope>, RestreamerError>
pub async fn resume_with_uplink( &self, node_id: &str, channel_id: u32, after: u64, ) -> Result<Vec<DrainEnvelope>, RestreamerError>
Prefer live uplink journal; fall back to the configured NodeJournal.
Sourcepub fn buffered_after(
&self,
node_id: &str,
channel_id: u32,
after: u64,
) -> Vec<DrainEnvelope>
pub fn buffered_after( &self, node_id: &str, channel_id: u32, after: u64, ) -> Vec<DrainEnvelope>
Snapshot of buffered events for a stream (no journal).
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Restreamer
impl !UnwindSafe for Restreamer
impl Freeze for Restreamer
impl Send for Restreamer
impl Sync for Restreamer
impl Unpin for Restreamer
impl UnsafeUnpin for Restreamer
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