Skip to main content

AeronArchiveReplayMerge

Struct AeronArchiveReplayMerge 

Source
pub struct AeronArchiveReplayMerge { /* private fields */ }

Implementations§

Source§

impl AeronArchiveReplayMerge

Source

pub fn new( subscription: &AeronSubscription, aeron_archive: &AeronArchive, replay_channel: &CStr, replay_destination: &CStr, live_destination: &CStr, recording_id: i64, start_position: i64, epoch_clock: c_longlong, merge_progress_timeout_ms: i64, ) -> Result<Self, AeronCError>

Create an AeronArchiveReplayMerge to manage the merging of a replayed stream into a live stream.

§Parameters
  • replay_merge the AeronArchiveReplayMerge to create and initialize

  • subscription the subscription to use for the replay and live stream. Must be a multi-destination subscription

  • aeron_archive the archive client

  • replay_channel the channel to use for the replay

  • replay_destination the replay channel to use for the destination added by the subscription

  • live_destination the live stream channel to use for the destination added by the subscription

  • recording_id the recording id of the archive to replay

  • start_position the start position of the replay

  • epoch_clock the clock to use for progress checks

  • merge_progress_timeout_ms the timeout to use for progress checks

§Return

0 for success, -1 for failure

Source

pub fn do_work(&self) -> Result<c_int, AeronCError>

Process the operation of the merge. Do not call the processing of fragments on the subscription.

§Parameters
  • work_count_p an indicator of work done
Source

pub fn poll<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>, fragment_limit: c_int, ) -> Result<i32, AeronCError>

Poll the image used for the merging replay and live stream. The aeron_archive_replay_merge_do_work will be called before the poll so that processing of the merge can be done.

§Parameters
  • handler the handler to call for incoming fragments

  • clientd the clientd to provide to the handler

  • fragment_limit the max number of fragments to process before returning

§Return

= 0 indicates the number of fragments processed, -1 for failure

Source

pub fn poll_fn<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>( &self, handler: AeronFragmentHandlerHandlerImpl, fragment_limit: c_int, ) -> Result<i32, AeronCError>

Poll the image used for the merging replay and live stream. The aeron_archive_replay_merge_do_work will be called before the poll so that processing of the merge can be done.

§Parameters
  • handler the handler to call for incoming fragments

  • clientd the clientd to provide to the handler

  • fragment_limit the max number of fragments to process before returning

§Return

= 0 indicates the number of fragments processed, -1 for failure

Stack-borrowed closure (_fn variant): the FnMut closure lives on the caller’s stack and is borrowed for this call only — the callback fires synchronously inside the call, so nothing is heap-allocated, nothing is stored, and the closure may borrow local state. Prefer this over the retained Handler-based form on the hot path; only generated for callbacks the C client does not retain (i.e. not stored for later firing).

§Panics

A panic inside the closure cannot unwind across the extern "C" callback boundary and aborts the process (since Rust 1.81). Return early instead of panicking in production fragment handlers.

Source

pub fn image(&self) -> AeronImage

The image used for the replay and live stream.

§Return

the AeronImage

Source

pub fn is_merged(&self) -> bool

Is the live stream merged and the replay stopped?

§Return

true if merged, false otherwise

Source

pub fn has_failed(&self) -> bool

Has the replay_merge failed due to an error?

§Return

true if an error occurred

Source

pub fn is_live_added(&self) -> bool

Is the live destination added to the subscription?

§Return

true if the live destination is added to the subscription

Source

pub fn get_inner(&self) -> *mut aeron_archive_replay_merge_t

Source

pub unsafe fn get_inner_mut(&self) -> &mut aeron_archive_replay_merge_t

Mutable access to the underlying C struct, minted from &self: nothing prevents two live &mut at once, so the caller must ensure exclusive access for the lifetime of the returned reference.

§Safety

No other reference (& or &mut) to the underlying struct may be alive while the returned &mut is in use.

Source

pub fn get_inner_ref(&self) -> &aeron_archive_replay_merge_t

Trait Implementations§

Source§

impl Clone for AeronArchiveReplayMerge

Source§

fn clone(&self) -> AeronArchiveReplayMerge

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for AeronArchiveReplayMerge

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Deref for AeronArchiveReplayMerge

Source§

type Target = aeron_archive_replay_merge_stct

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl From<&AeronArchiveReplayMerge> for *mut aeron_archive_replay_merge_t

Source§

fn from(value: &AeronArchiveReplayMerge) -> Self

Converts to this type from the input type.
Source§

impl From<*const aeron_archive_replay_merge_stct> for AeronArchiveReplayMerge

Source§

fn from(value: *const aeron_archive_replay_merge_t) -> Self

Converts to this type from the input type.
Source§

impl From<*mut aeron_archive_replay_merge_stct> for AeronArchiveReplayMerge

Source§

fn from(value: *mut aeron_archive_replay_merge_t) -> Self

Converts to this type from the input type.
Source§

impl From<AeronArchiveReplayMerge> for *mut aeron_archive_replay_merge_t

Source§

fn from(value: AeronArchiveReplayMerge) -> Self

Converts to this type from the input type.
Source§

impl From<AeronArchiveReplayMerge> for aeron_archive_replay_merge_t

Source§

fn from(value: AeronArchiveReplayMerge) -> Self

Converts to this type from the input type.
Source§

impl From<aeron_archive_replay_merge_stct> for AeronArchiveReplayMerge

Source§

fn from(value: aeron_archive_replay_merge_t) -> Self

Converts to this type from the input type.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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 = 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.