pub struct AeronExclusivePublication { /* private fields */ }
Implementations§
source§impl AeronExclusivePublication
impl AeronExclusivePublication
pub fn new( async_: &AeronAsyncAddExclusivePublication, ) -> Result<Self, AeronCError>
source§impl AeronExclusivePublication
impl AeronExclusivePublication
pub fn new_zeroed() -> Result<Self, AeronCError>
sourcepub fn offer<AeronReservedValueSupplierHandlerImpl: AeronReservedValueSupplierCallback>(
&self,
buffer: &[u8],
reserved_value_supplier: Option<&Handler<AeronReservedValueSupplierHandlerImpl>>,
) -> i64
pub fn offer<AeronReservedValueSupplierHandlerImpl: AeronReservedValueSupplierCallback>( &self, buffer: &[u8], reserved_value_supplier: Option<&Handler<AeronReservedValueSupplierHandlerImpl>>, ) -> i64
sourcepub fn offerv<AeronReservedValueSupplierHandlerImpl: AeronReservedValueSupplierCallback>(
&self,
iov: &AeronIovec,
iovcnt: usize,
reserved_value_supplier: Option<&Handler<AeronReservedValueSupplierHandlerImpl>>,
) -> i64
pub fn offerv<AeronReservedValueSupplierHandlerImpl: AeronReservedValueSupplierCallback>( &self, iov: &AeronIovec, iovcnt: usize, reserved_value_supplier: Option<&Handler<AeronReservedValueSupplierHandlerImpl>>, ) -> i64
Non-blocking publish by gathering buffer vectors into a message.
§Parameters
-
iov
array for the vectors -
iovcnt
of the number of vectors -
reserved_value_supplier
to use for setting the reserved value field or NULL. -
clientd
to pass to the reserved_value_supplier.
§Return
the new stream position otherwise a negative error value.
sourcepub fn try_claim(&self, length: usize, buffer_claim: &AeronBufferClaim) -> i64
pub fn try_claim(&self, length: usize, buffer_claim: &AeronBufferClaim) -> i64
Try to claim a range in the publication log into which a message can be written with zero copy semantics. Once the message has been written then aeron_buffer_claim_commit should be called thus making it available. A claim length cannot be greater than max payload length.
Note: This method can only be used for message lengths less than MTU length minus header.
@code
AeronBufferClaim
buffer_claim;
if (AeronExclusivePublication
ry_claim(publication, length, &buffer_claim) > 0L)
{
// work with buffer_claim->data directly.
aeron_buffer_claim_commit(&buffer_claim);
}
@endcode
§Parameters
-
length
of the message. -
buffer_claim
to be populated if the claim succeeds.
§Return
the new stream position otherwise a negative error value.
sourcepub fn append_padding(&self, length: usize) -> i64
pub fn append_padding(&self, length: usize) -> i64
sourcepub fn offer_block(&self, buffer: &[u8]) -> i64
pub fn offer_block(&self, buffer: &[u8]) -> i64
sourcepub fn channel_status(&self) -> i64
pub fn channel_status(&self) -> i64
Get the status of the media channel for this publication.
The status will be ERRORED (-1) if a socket exception occurs on setup and ACTIVE (1) if all is well.
§Return
1 for ACTIVE, -1 for ERRORED
sourcepub fn constants(
&self,
constants: &AeronPublicationConstants,
) -> Result<i32, AeronCError>
pub fn constants( &self, constants: &AeronPublicationConstants, ) -> Result<i32, AeronCError>
sourcepub fn position(&self) -> i64
pub fn position(&self) -> i64
Get the current position to which the publication has advanced for this stream.
§Return
the current position to which the publication has advanced for this stream or a negative error value.
sourcepub fn position_limit(&self) -> i64
pub fn position_limit(&self) -> i64
Get the position limit beyond which this publication will be back pressured.
This should only be used as a guide to determine when back pressure is likely to be applied.
§Return
the position limit beyond which this publication will be back pressured or a negative error value.
sourcepub fn close<AeronNotificationHandlerImpl: AeronNotificationCallback>(
&self,
on_close_complete: Option<&Handler<AeronNotificationHandlerImpl>>,
) -> Result<i32, AeronCError>
pub fn close<AeronNotificationHandlerImpl: AeronNotificationCallback>( &self, on_close_complete: Option<&Handler<AeronNotificationHandlerImpl>>, ) -> Result<i32, AeronCError>
sourcepub fn is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Has the exclusive publication seen an active Subscriber recently?
§Return
true if this publication has recently seen an active subscriber otherwise false.
sourcepub fn local_sockaddrs(
&self,
address_vec: &AeronIovec,
address_vec_len: usize,
) -> Result<i32, AeronCError>
pub fn local_sockaddrs( &self, address_vec: &AeronIovec, address_vec_len: usize, ) -> Result<i32, AeronCError>
Get all of the local socket addresses for this exclusive publication. Typically only one representing the control address.
@see aeron_subscription_local_sockaddrs
§Parameters
-
address_vec
to hold the received addresses -
address_vec_len
available length of the vector to hold the addresses
§Return
number of addresses found or -1 if there is an error.
pub fn get_inner(&self) -> *mut aeron_exclusive_publication_t
Trait Implementations§
source§impl Clone for AeronExclusivePublication
impl Clone for AeronExclusivePublication
source§fn clone(&self) -> AeronExclusivePublication
fn clone(&self) -> AeronExclusivePublication
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AeronExclusivePublication
impl Debug for AeronExclusivePublication
source§impl Deref for AeronExclusivePublication
impl Deref for AeronExclusivePublication
source§impl From<&AeronExclusivePublication> for *mut aeron_exclusive_publication_t
impl From<&AeronExclusivePublication> for *mut aeron_exclusive_publication_t
source§fn from(value: &AeronExclusivePublication) -> Self
fn from(value: &AeronExclusivePublication) -> Self
source§impl From<*const aeron_exclusive_publication_stct> for AeronExclusivePublication
impl From<*const aeron_exclusive_publication_stct> for AeronExclusivePublication
source§fn from(value: *const aeron_exclusive_publication_t) -> Self
fn from(value: *const aeron_exclusive_publication_t) -> Self
source§impl From<*mut aeron_exclusive_publication_stct> for AeronExclusivePublication
impl From<*mut aeron_exclusive_publication_stct> for AeronExclusivePublication
source§fn from(value: *mut aeron_exclusive_publication_t) -> Self
fn from(value: *mut aeron_exclusive_publication_t) -> Self
source§impl From<AeronExclusivePublication> for *mut aeron_exclusive_publication_t
impl From<AeronExclusivePublication> for *mut aeron_exclusive_publication_t
source§fn from(value: AeronExclusivePublication) -> Self
fn from(value: AeronExclusivePublication) -> Self
source§impl From<AeronExclusivePublication> for aeron_exclusive_publication_t
impl From<AeronExclusivePublication> for aeron_exclusive_publication_t
source§fn from(value: AeronExclusivePublication) -> Self
fn from(value: AeronExclusivePublication) -> Self
source§impl From<aeron_exclusive_publication_stct> for AeronExclusivePublication
impl From<aeron_exclusive_publication_stct> for AeronExclusivePublication
source§fn from(value: aeron_exclusive_publication_t) -> Self
fn from(value: aeron_exclusive_publication_t) -> Self
impl Send for AeronExclusivePublication
impl Sync for AeronExclusivePublication
Auto Trait Implementations§
impl Freeze for AeronExclusivePublication
impl !RefUnwindSafe for AeronExclusivePublication
impl Unpin for AeronExclusivePublication
impl !UnwindSafe for AeronExclusivePublication
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)