Skip to main content

AeronCountersReader

Struct AeronCountersReader 

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

Implementations§

Source§

impl AeronCountersReader

Source

pub fn new_zeroed_on_heap() -> Self

creates zeroed struct where the underlying c struct is on the heap

Source

pub fn new_zeroed_on_stack() -> Self

creates zeroed struct where the underlying c struct is on the stack (Use with care)

Source

pub fn get_buffers( &self, buffers: &AeronCountersReaderBuffers, ) -> Result<i32, AeronCError>

Get buffer pointers and lengths for the counters reader.

§Parameters
  • reader reader containing the buffers.

  • buffers output structure to return the buffers.

§Return

-1 on failure, 0 on success.

Source

pub fn foreach_counter<AeronCountersReaderForeachCounterFuncHandlerImpl: AeronCountersReaderForeachCounterFuncCallback>( &self, func: Option<&Handler<AeronCountersReaderForeachCounterFuncHandlerImpl>>, )

Iterate over the counters in the counters_reader and call the given function for each counter.

§Parameters
  • func to call for each counter.

  • clientd to pass for each call to func.

Source

pub fn foreach_counter_fn<AeronCountersReaderForeachCounterFuncHandlerImpl: FnMut(i64, i32, i32, &[u8], &str)>( &self, func: AeronCountersReaderForeachCounterFuncHandlerImpl, )

Iterate over the counters in the counters_reader and call the given function for each counter.

§Parameters
  • func to call for each counter.

  • clientd to pass for each call to func.

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 find_by_type_id_and_registration_id( &self, type_id: i32, registration_id: i64, ) -> i32

Iterate over allocated counters and find the first matching a given type id and registration id.

§Parameters
  • type_id to find.

  • registration_id to find.

§Return

the counter id if found otherwise AERON_NULL_COUNTER_ID.

Source

pub fn max_counter_id(&self) -> i32

Get the current max counter id.

§Return

-1 on failure, max counter id on success.

Source

pub fn addr(&self, counter_id: i32) -> &mut i64

Get the address for a counter.

§Parameters
  • counter_id to find
§Return

address of the counter value

Source

pub fn counter_registration_id( &self, counter_id: i32, ) -> Result<i64, AeronCError>

Get the registration id assigned to a counter.

§Parameters
  • counter_id for which the registration id is requested.

  • registration_id pointer for value to be set on success.

Source

pub fn counter_owner_id(&self, counter_id: i32) -> Result<i64, AeronCError>

Get the owner id assigned to a counter which will typically be the client id.

§Parameters
  • counter_id for which the owner id is requested.

  • owner_id pointer for value to be set on success.

Source

pub fn counter_reference_id(&self, counter_id: i32) -> Result<i64, AeronCError>

Get the reference id assigned to a counter which will typically be the registration id of an associated Image, Subscription, Publication, etc.

§Parameters
  • counter_id for which the reference id is requested.

  • reference_id pointer for value to be set on success.

Source

pub fn counter_state(&self, counter_id: i32) -> Result<i32, AeronCError>

Get the state for a counter.

§Parameters
  • counter_id to find

  • state out pointer for the current state to be stored in.

Source

pub fn counter_type_id(&self, counter_id: i32) -> Result<i32, AeronCError>

Get the type id for a counter.

§Parameters
  • counter_id to find
Source

pub fn counter_label( &self, counter_id: i32, buffer: &mut [u8], ) -> Result<i32, AeronCError>

Get the label for a counter.

§Parameters
  • counter_id to find

  • buffer to store the counter in.

  • buffer_length length of the output buffer

§Return

-1 on failure, number of characters copied to buffer on success.

Source

pub fn free_for_reuse_deadline_ms( &self, counter_id: i32, ) -> Result<i64, AeronCError>

Get the free for reuse deadline (ms) for a counter.

§Parameters
  • counter_id to find.

  • deadline_ms output value to store the deadline.

Source

pub fn aeron_archive_recording_pos_find_counter_id_by_recording_id( &self, recording_id: i64, ) -> i32

Find the active counter id for a stream based on the recording id.

§Parameters
  • recording_id the recording id of an active recording
§Return

the counter id if found, otherwise AERON_NULL_COUNTER_ID

Source

pub fn aeron_archive_recording_pos_find_counter_id_by_session_id( &self, session_id: i32, ) -> i32

Find the active counter id for a stream based on the session id.

§Parameters
  • session_id the session id of an active recording
§Return

the counter id if found, otherwise AERON_NULL_COUNTER_ID

Source

pub fn aeron_archive_recording_pos_get_recording_id( &self, counter_id: i32, ) -> i64

Get the recording id for a given counter id.

§Parameters
  • counter_id the counter id of an active recording
§Return

the recording id if found, otherwise AERON_NULL_COUNTER_ID

Source

pub fn aeron_archive_recording_pos_get_source_identity( &self, counter_id: i32, dst: &CStr, ) -> Result<usize, AeronCError>

Get the source identity for the recording.

See source_identity in AeronImageConstants.

§Parameters
  • counter_id the counter id of an active recording

  • dst a destination buffer into which the source identity will be written

  • len_p a pointer to a size_t that initially indicates the length of the dst buffer. After the function return successfully, len_p will be set to the length of the source identity string in dst

Source

pub fn aeron_archive_recording_pos_is_active( &self, counter_id: i32, recording_id: i64, ) -> Result<bool, AeronCError>

Is the recording counter still active?

§Return

is_active out param set to true if the counter is still active

§Parameters
  • counter_id the counter id to search for

  • recording_id the recording id to match against

Source

pub fn aeron_local_sockaddr_find_addrs( &self, channel_status_indicator_id: i32, address_vec: &AeronIovec, address_vec_len: usize, ) -> Result<i32, AeronCError>

Source

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

Source

pub unsafe fn get_inner_mut(&self) -> &mut aeron_counters_reader_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_counters_reader_t

Source§

impl AeronCountersReader

Source

pub fn find_by_type_id( &self, type_id: i32, predicate: impl FnMut(&[u8]) -> bool, ) -> Option<i32>

Find the first counter of type_id whose key matches predicate.

The type ids are the bindgen’d AERON_COUNTER_*_TYPE_ID constants; the key layout is type-specific (see aeron_counters.h). Mirrors Java’s CountersReader lookups.

Source

pub fn find_by_type_and_registration_id( &self, type_id: i32, registration_id: i64, ) -> Option<i32>

Find the first counter of type_id keyed by registration_id — the layout used by aeron’s per-stream counters (publisher limit/position, sender/receiver positions, subscriber position: the key starts with the registration id as a little-endian i64). Mirrors Java’s findCounterIdByRegistration-style helpers, e.g.:

let registration_id = publication.get_constants()?.registration_id;
let limit_counter = counters_reader
    .find_by_type_and_registration_id(AERON_COUNTER_PUBLISHER_LIMIT_TYPE_ID as i32, registration_id);
Source

pub fn get_counter_label( &self, counter_id: i32, max_length: usize, ) -> Result<String, AeronCError>

Get the label for a counter.

param counters_reader that contains the counter

param counter_id to find

param buffer to store the counter in.

param buffer_length length of the output buffer

return -1 on failure, number of characters copied to buffer on success.

Source

pub fn get_counter_label_into( &self, counter_id: i32, dst: &mut String, ) -> Result<(), AeronCError>

Get the label for a counter.

Source

pub fn get_counter_key(&self, counter_id: i32) -> Result<Vec<u8>, AeronCError>

Get the key for a counter.

Source

pub fn get_counter_key_into( &self, counter_id: i32, dst: &mut Vec<u8>, ) -> Result<(), AeronCError>

Get the key for a counter.

Source

pub fn get_counter_value(&self, counter_id: i32) -> i64

Trait Implementations§

Source§

impl Clone for AeronCountersReader

Source§

fn clone(&self) -> AeronCountersReader

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 AeronCountersReader

Source§

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

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

impl Deref for AeronCountersReader

Source§

type Target = aeron_counters_reader_stct

The resulting type after dereferencing.
Source§

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

Dereferences the value.
Source§

impl From<&AeronCountersReader> for *mut aeron_counters_reader_t

Source§

fn from(value: &AeronCountersReader) -> Self

Converts to this type from the input type.
Source§

impl From<*const aeron_counters_reader_stct> for AeronCountersReader

Source§

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

Converts to this type from the input type.
Source§

impl From<*mut aeron_counters_reader_stct> for AeronCountersReader

Source§

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

Converts to this type from the input type.
Source§

impl From<AeronCountersReader> for *mut aeron_counters_reader_t

Source§

fn from(value: AeronCountersReader) -> Self

Converts to this type from the input type.
Source§

impl From<AeronCountersReader> for aeron_counters_reader_t

Source§

fn from(value: AeronCountersReader) -> Self

Converts to this type from the input type.
Source§

impl From<aeron_counters_reader_stct> for AeronCountersReader

Source§

fn from(value: aeron_counters_reader_t) -> Self

Converts to this type from the input type.
Source§

impl Send for AeronCountersReader

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.