pub struct AeronImage { /* private fields */ }
Implementations§
Source§impl AeronImage
impl AeronImage
Sourcepub fn new_zeroed() -> Result<Self, AeronCError>
pub fn new_zeroed() -> Result<Self, AeronCError>
creates zeroed struct where the underlying c struct is on the heap
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>
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
image
to set the position of.
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 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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
fragment_limit
for 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_once<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>(
&self,
handler: AeronFragmentHandlerHandlerImpl,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn poll_once<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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
fragment_limit
for the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
fragment_limit
for 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_once<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>(
&self,
handler: AeronControlledFragmentHandlerHandlerImpl,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn controlled_poll_once<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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
fragment_limit
for the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
to consume messages up to. -
fragment_limit
for 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_once<AeronFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader)>(
&self,
handler: AeronFragmentHandlerHandlerImpl,
limit_position: i64,
fragment_limit: usize,
) -> Result<i32, AeronCError>
pub fn bounded_poll_once<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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
to consume messages up to. -
fragment_limit
for the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
to consume messages up to. -
fragment_limit
for 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_once<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_once<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
-
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
to consume messages up to. -
fragment_limit
for the number of fragments to be consumed during one polling operation.
§Return
the number of fragments that have been consumed or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
Sourcepub fn controlled_peek<AeronControlledFragmentHandlerHandlerImpl: AeronControlledFragmentHandlerCallback>(
&self,
initial_position: i64,
handler: Option<&Handler<AeronControlledFragmentHandlerHandlerImpl>>,
limit_position: i64,
) -> i64
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_position
from which to peek forward. -
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
up to which can be scanned.
§Return
the resulting position after the scan terminates which is a complete message or -1 for error.
Sourcepub fn controlled_peek_once<AeronControlledFragmentHandlerHandlerImpl: FnMut(&[u8], AeronHeader) -> aeron_controlled_fragment_handler_action_t>(
&self,
initial_position: i64,
handler: AeronControlledFragmentHandlerHandlerImpl,
limit_position: i64,
) -> i64
pub fn controlled_peek_once<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_position
from which to peek forward. -
handler
to which message fragments are delivered. -
clientd
to pass to the handler. -
limit_position
up to which can be scanned.
§Return
the resulting position after the scan terminates which is a complete message or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
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
-
handler
to which block is delivered. -
clientd
to pass to the handler. -
block_length_limit
up 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_once<AeronBlockHandlerHandlerImpl: FnMut(&[u8], i32, i32)>(
&self,
handler: AeronBlockHandlerHandlerImpl,
block_length_limit: usize,
) -> Result<i32, AeronCError>
pub fn block_poll_once<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
-
handler
to which block is delivered. -
clientd
to pass to the handler. -
block_length_limit
up to which a block may be in length.
§Return
the number of bytes that have been consumed or -1 for error.
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
pub fn is_closed(&self) -> bool
pub fn get_inner(&self) -> *mut aeron_image_t
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