pub struct AeronImage { /* private fields */ }Implementations§
Source§impl AeronImage
impl AeronImage
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)
Sourcepub fn release(&self) -> Result<i32, AeronCError>
pub fn release(&self) -> Result<i32, AeronCError>
Release an image that was retained by aeron_subscription_image_by_session_id or aeron_subscription_image_at_index.
Unlike aeron_subscription_image_release, this function unconditionally decrements the reference count and is safe to call after the image has become unavailable (i.e. after it has been removed from the subscription’s image list).
§Return
0 for success and -1 for error.
Sourcepub fn constants(
&self,
constants: &AeronImageConstants,
) -> Result<i32, AeronCError>
pub fn constants( &self, constants: &AeronImageConstants, ) -> Result<i32, AeronCError>
Sourcepub fn get_constants(&self) -> Result<AeronImageConstants, AeronCError>
pub fn get_constants(&self) -> Result<AeronImageConstants, AeronCError>
Fill in a structure with the constants in use by a image.
Sourcepub fn position(&self) -> i64
pub fn position(&self) -> i64
The position this image has been consumed to by the subscriber.
§Return
the position this image has been consumed to by the subscriber.
Sourcepub fn set_position(&self, position: i64) -> Result<i32, AeronCError>
👎Deprecated
pub fn set_position(&self, position: i64) -> Result<i32, AeronCError>
Set the subscriber position for this image to indicate where it has been consumed to.
§Parameters
imageto set the position of. @deprecated Will be removed in1.53.0.
Sourcepub fn is_end_of_stream(&self) -> bool
pub fn is_end_of_stream(&self) -> bool
Is the current consumed position at the end of the stream?
§Return
true if at the end of the stream or false if not.
Sourcepub fn end_of_stream_position(&self) -> i64
pub fn end_of_stream_position(&self) -> i64
The position the stream reached when EOS was received from the publisher. The position will be INT64_MAX until the stream ends and EOS is set.
§Return
position the stream reached when EOS was received from the publisher.
Sourcepub fn active_transport_count(&self) -> Result<i32, AeronCError>
pub fn active_transport_count(&self) -> Result<i32, AeronCError>
Count of observed active transports within the image liveness timeout.
If the image is closed, then this is 0. This may also be 0 if no actual datagrams have arrived. IPC Images also will be 0.
§Return
count of active transports - 0 if Image is closed, no datagrams yet, or IPC. Or -1 for error.
Sourcepub fn is_publication_revoked(&self) -> bool
pub fn is_publication_revoked(&self) -> bool
Sourcepub fn poll<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>(
&self,
handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn poll<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified.
Use a fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
Sourcepub fn poll_fn<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>(
&self,
handler: AeronFragmentHandlerHandlerImpl,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn poll_fn<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>( &self, handler: AeronFragmentHandlerHandlerImpl, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified.
Use a fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
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.
Sourcepub fn controlled_poll<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>(
&self,
handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn controlled_poll<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified.
Use a controlled fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
Sourcepub fn controlled_poll_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>(
&self,
handler: AeronControlledFragmentHandlerHandlerImpl,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn controlled_poll_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>( &self, handler: AeronControlledFragmentHandlerHandlerImpl, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified.
Use a controlled fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
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.
Sourcepub fn bounded_poll<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>(
&self,
handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>,
limit_position: i64,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn bounded_poll<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>, limit_position: i64, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Use a fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionto consume messages up to. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
Sourcepub fn bounded_poll_fn<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>(
&self,
handler: AeronFragmentHandlerHandlerImpl,
limit_position: i64,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn bounded_poll_fn<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>( &self, handler: AeronFragmentHandlerHandlerImpl, limit_position: i64, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Use a fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionto consume messages up to. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
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.
Sourcepub fn bounded_controlled_poll<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>(
&self,
handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>,
limit_position: i64,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn bounded_controlled_poll<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>, limit_position: i64, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Use a controlled fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionto consume messages up to. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
Sourcepub fn bounded_controlled_poll_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>(
&self,
handler: AeronControlledFragmentHandlerHandlerImpl,
limit_position: i64,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn bounded_controlled_poll_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>( &self, handler: AeronControlledFragmentHandlerHandlerImpl, limit_position: i64, fragment_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Use a controlled fragment assembler to assemble messages which span multiple fragments.
§Parameters
-
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionto consume messages up to. -
fragment_limitfor the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
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.
Sourcepub fn controlled_peek<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>(
&self,
initial_position: i64,
handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>,
limit_position: i64,
) -> i64
👎Deprecated
pub fn controlled_peek<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>( &self, initial_position: i64, handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>, limit_position: i64, ) -> i64
Peek for new messages in a stream by scanning forward from an initial position. If new messages are found then they will be delivered to the handler up to a limited position.
Use a controlled fragment assembler to assemble messages which span multiple fragments. Scans must also start at the beginning of a message so that the assembler is reset.
§Parameters
-
initial_positionfrom which to peek forward. -
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionup to which can be scanned.
§Return
the resulting position after the scan terminates which is a complete message or -1 for error.
@deprecated Will be removed in 1.53.0.
Sourcepub fn controlled_peek_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>(
&self,
initial_position: i64,
handler: AeronControlledFragmentHandlerHandlerImpl,
limit_position: i64,
) -> i64
👎Deprecated
pub fn controlled_peek_fn<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>( &self, initial_position: i64, handler: AeronControlledFragmentHandlerHandlerImpl, limit_position: i64, ) -> i64
Peek for new messages in a stream by scanning forward from an initial position. If new messages are found then they will be delivered to the handler up to a limited position.
Use a controlled fragment assembler to assemble messages which span multiple fragments. Scans must also start at the beginning of a message so that the assembler is reset.
§Parameters
-
initial_positionfrom which to peek forward. -
handlerto which message fragments are delivered. -
clientdto pass to the handler. -
limit_positionup to which can be scanned.
§Return
the resulting position after the scan terminates which is a complete message or -1 for error.
@deprecated Will be removed in 1.53.0.
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.
Sourcepub fn block_poll<AeronBlockHandlerHandlerImpl: AeronBlockHandlerCallback>(
&self,
handler: Option<&Handler<AeronBlockHandlerHandlerImpl>>,
block_length_limit: usize,
) -> Result<i32, AeronCError>
pub fn block_poll<AeronBlockHandlerHandlerImpl: AeronBlockHandlerCallback>( &self, handler: Option<&Handler<AeronBlockHandlerHandlerImpl>>, block_length_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of bytes.
A scan will terminate if a padding frame is encountered. If first frame in a scan is padding then a block for the padding is notified. If the padding comes after the first frame in a scan then the scan terminates at the offset the padding frame begins. Padding frames are delivered singularly in a block.
Padding frames may be for a greater range than the limit offset but only the header needs to be valid so relevant length of the frame is data header length.
§Parameters
-
handlerto which block is delivered. -
clientdto pass to the handler. -
block_length_limitup to which a block may be in length.
§Return
the number of bytes that have been consumed or -1 for error.
Sourcepub fn block_poll_fn<AeronBlockHandlerHandlerImpl: FnMut(&[u8], i32, i32)>(
&self,
handler: AeronBlockHandlerHandlerImpl,
block_length_limit: usize,
) -> Result<i32, AeronCError>
pub fn block_poll_fn<AeronBlockHandlerHandlerImpl: FnMut(&[u8], i32, i32)>( &self, handler: AeronBlockHandlerHandlerImpl, block_length_limit: usize, ) -> Result<i32, AeronCError>
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they will be delivered to the handler up to a limited number of bytes.
A scan will terminate if a padding frame is encountered. If first frame in a scan is padding then a block for the padding is notified. If the padding comes after the first frame in a scan then the scan terminates at the offset the padding frame begins. Padding frames are delivered singularly in a block.
Padding frames may be for a greater range than the limit offset but only the header needs to be valid so relevant length of the frame is data header length.
§Parameters
-
handlerto which block is delivered. -
clientdto pass to the handler. -
block_length_limitup to which a block may be in length.
§Return
the number of bytes that have been consumed or -1 for error.
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 is_closed(&self) -> bool
pub fn reject(&self, reason: &CStr) -> Result<i32, AeronCError>
pub fn get_inner(&self) -> *mut aeron_image_t
Sourcepub unsafe fn get_inner_mut(&self) -> &mut aeron_image_t
pub unsafe fn get_inner_mut(&self) -> &mut aeron_image_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_image_t
Source§impl AeronImage
impl AeronImage
Sourcepub fn poll_instrumented<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>(
&self,
handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn poll_instrumented<AeronFragmentHandlerHandlerImpl: AeronFragmentHandlerCallback>( &self, handler: Option<&Handler<AeronFragmentHandlerHandlerImpl>>, fragment_limit: usize, ) -> Result<i32, AeronCError>
Instrumented wrapper around AeronImage::poll that adds tracing spans
when the instrument-ops feature is enabled.
Trait Implementations§
Source§impl Clone for AeronImage
impl Clone for AeronImage
Source§fn clone(&self) -> AeronImage
fn clone(&self) -> AeronImage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more