pub struct AeronMpscRb { /* private fields */ }Implementations§
Source§impl AeronMpscRb
impl AeronMpscRb
pub fn new( buffer: *mut u8, descriptor: &AeronRbDescriptor, capacity: usize, max_message_length: usize, ) -> Result<Self, AeronCError>
Sourcepub fn new_zeroed_on_heap() -> Self
pub fn new_zeroed_on_heap() -> Self
creates zeroed struct where the underlying c struct is on the heap
Sourcepub fn new_zeroed_on_stack() -> Self
pub fn new_zeroed_on_stack() -> Self
creates zeroed struct where the underlying c struct is on the stack (Use with care)
pub fn buffer(&self) -> *mut u8
pub fn descriptor(&self) -> AeronRbDescriptor
pub fn capacity(&self) -> usize
pub fn max_message_length(&self) -> usize
pub fn init( &self, buffer: *mut c_void, length: usize, ) -> Result<i32, AeronCError>
pub fn write( &self, msg_type_id: i32, msg: *const c_void, length: usize, ) -> aeron_rb_write_result_t
pub fn try_claim(&self, msg_type_id: i32, length: usize) -> i32
pub fn commit(&self, offset: i32) -> Result<i32, AeronCError>
pub fn abort(&self, offset: i32) -> Result<i32, AeronCError>
pub fn read<AeronRbHandlerHandlerImpl: AeronRbHandlerCallback>( &self, handler: Option<&Handler<AeronRbHandlerHandlerImpl>>, message_count_limit: usize, ) -> usize
Sourcepub fn read_fn<AeronRbHandlerHandlerImpl: FnMut(i32, *const c_void, usize)>(
&self,
handler: AeronRbHandlerHandlerImpl,
message_count_limit: usize,
) -> usize
pub fn read_fn<AeronRbHandlerHandlerImpl: FnMut(i32, *const c_void, usize)>( &self, handler: AeronRbHandlerHandlerImpl, message_count_limit: usize, ) -> usize
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.
pub fn controlled_read<AeronRbControlledHandlerHandlerImpl: AeronRbControlledHandlerCallback>( &self, handler: Option<&Handler<AeronRbControlledHandlerHandlerImpl>>, message_count_limit: usize, ) -> usize
Sourcepub fn controlled_read_fn<AeronRbControlledHandlerHandlerImpl: FnMut(i32, *const c_void, usize) -> aeron_rb_read_action_t>(
&self,
handler: AeronRbControlledHandlerHandlerImpl,
message_count_limit: usize,
) -> usize
pub fn controlled_read_fn<AeronRbControlledHandlerHandlerImpl: FnMut(i32, *const c_void, usize) -> aeron_rb_read_action_t>( &self, handler: AeronRbControlledHandlerHandlerImpl, message_count_limit: usize, ) -> usize
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.
pub fn next_correlation_id(&self) -> i64
pub fn consumer_heartbeat_time(&self, now_ms: i64)
pub fn consumer_heartbeat_time_value(&self) -> i64
pub fn unblock(&self) -> bool
pub fn get_inner(&self) -> *mut aeron_mpsc_rb_t
Sourcepub unsafe fn get_inner_mut(&self) -> &mut aeron_mpsc_rb_t
pub unsafe fn get_inner_mut(&self) -> &mut aeron_mpsc_rb_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.
pub fn get_inner_ref(&self) -> &aeron_mpsc_rb_t
Source§impl AeronMpscRb
impl AeronMpscRb
Sourcepub fn clone_struct(&self) -> Self
pub fn clone_struct(&self) -> Self
Regular clone just increases the reference count of underlying count.
clone_struct shallow copies the content of the underlying struct on heap.
NOTE: if the struct has references to other structs these will not be copied
Must be only used on structs which has no init/clean up methods. So its dangerous to use with Aeron/AeronContext/AeronPublication/AeronSubscription More intended for AeronArchiveRecordingDescriptor (note strings will not work as its a shallow copy)
Trait Implementations§
Source§impl Clone for AeronMpscRb
impl Clone for AeronMpscRb
Source§fn clone(&self) -> AeronMpscRb
fn clone(&self) -> AeronMpscRb
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AeronMpscRb
impl Debug for AeronMpscRb
Source§impl Default for AeronMpscRb
This will create an instance where the struct is zeroed, use with care
impl Default for AeronMpscRb
This will create an instance where the struct is zeroed, use with care