pub struct AeronBufferClaim { /* private fields */ }Expand description
Structure used to hold information for a try_claim function call.
Implementations§
Source§impl AeronBufferClaim
impl AeronBufferClaim
pub fn new(frame_header: *mut u8, data: &mut [u8]) -> 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 frame_header(&self) -> *mut u8
pub fn data(&self) -> &mut [u8] ⓘ
pub fn length(&self) -> usize
Sourcepub fn commit(&self) -> Result<i32, AeronCError>
pub fn commit(&self) -> Result<i32, AeronCError>
Commit the given buffer_claim as a complete message available for consumption.
§Return
0 for success or -1 for error.
Sourcepub fn abort(&self) -> Result<i32, AeronCError>
pub fn abort(&self) -> Result<i32, AeronCError>
Abort the given buffer_claim and assign its position as padding.
§Return
0 for success or -1 for error.
pub fn get_inner(&self) -> *mut aeron_buffer_claim_t
Sourcepub unsafe fn get_inner_mut(&self) -> &mut aeron_buffer_claim_t
pub unsafe fn get_inner_mut(&self) -> &mut aeron_buffer_claim_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_buffer_claim_t
Source§impl AeronBufferClaim
impl AeronBufferClaim
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)
Source§impl AeronBufferClaim
impl AeronBufferClaim
Sourcepub fn data_mut(&self) -> &mut [u8] ⓘ
pub fn data_mut(&self) -> &mut [u8] ⓘ
Writable view over the claimed term-buffer region.
§Safety contract ( upheld by construction )
Only sound on a genuinely claimed buffer (produced by a successful
try_claim). length and data come straight from the Aeron C claim
and are trusted; a default-constructed/null claim would be unsound to
dereference — the debug_assert guards that in debug builds only (no
release-build cost on this hot path).
pub fn frame_header_mut(&self) -> &mut aeron_header_values_frame_t
Trait Implementations§
Source§impl Clone for AeronBufferClaim
impl Clone for AeronBufferClaim
Source§fn clone(&self) -> AeronBufferClaim
fn clone(&self) -> AeronBufferClaim
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AeronBufferClaim
impl Debug for AeronBufferClaim
Source§impl Default for AeronBufferClaim
This will create an instance where the struct is zeroed, use with care
impl Default for AeronBufferClaim
This will create an instance where the struct is zeroed, use with care