Struct rusteron_media_driver::AeronPublication
source · pub struct AeronPublication { /* private fields */ }
Implementations§
source§impl AeronPublication
impl AeronPublication
pub fn new(async_: &AeronAsyncAddPublication) -> Result<Self, AeronCError>
source§impl AeronPublication
impl AeronPublication
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. If the claim is held for more than the aeron.publication.unblock.timeout system property then the driver will assume the publication thread is dead and will unblock the claim thus allowing other threads to make progress and other claims to be sent to reach end-of-stream (EOS).
@code
AeronBufferClaim
buffer_claim;
if (AeronPublication
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 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 is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Has the publication seen an active Subscriber recently?
§Return
true if this publication has recently seen an active subscriber otherwise false.
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>
Asynchronously close the publication. Will callback on the on_complete notification when the subscription is closed. The callback is optional, use NULL for the on_complete callback if not required.
§Parameters
-
on_close_complete
optional callback to execute once the subscription has been closed and freed. This may happen on a separate thread, so the caller should ensure that clientd has the appropriate lifetime. -
on_close_complete_clientd
parameter to pass to the on_complete callback.
§Return
0 for success or -1 for error.
sourcepub fn session_id(&self) -> i32
pub fn session_id(&self) -> i32
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 publication. Typically only one representing the control address.
§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.
@see aeron_subscription_local_Sockaddr
s
pub fn get_inner(&self) -> *mut aeron_publication_t
Trait Implementations§
source§impl Clone for AeronPublication
impl Clone for AeronPublication
source§fn clone(&self) -> AeronPublication
fn clone(&self) -> AeronPublication
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AeronPublication
impl Debug for AeronPublication
source§impl Deref for AeronPublication
impl Deref for AeronPublication
source§impl From<&AeronPublication> for *mut aeron_publication_t
impl From<&AeronPublication> for *mut aeron_publication_t
source§fn from(value: &AeronPublication) -> Self
fn from(value: &AeronPublication) -> Self
source§impl From<*const aeron_publication_stct> for AeronPublication
impl From<*const aeron_publication_stct> for AeronPublication
source§fn from(value: *const aeron_publication_t) -> Self
fn from(value: *const aeron_publication_t) -> Self
source§impl From<*mut aeron_publication_stct> for AeronPublication
impl From<*mut aeron_publication_stct> for AeronPublication
source§fn from(value: *mut aeron_publication_t) -> Self
fn from(value: *mut aeron_publication_t) -> Self
source§impl From<AeronPublication> for *mut aeron_publication_t
impl From<AeronPublication> for *mut aeron_publication_t
source§fn from(value: AeronPublication) -> Self
fn from(value: AeronPublication) -> Self
source§impl From<AeronPublication> for aeron_publication_t
impl From<AeronPublication> for aeron_publication_t
source§fn from(value: AeronPublication) -> Self
fn from(value: AeronPublication) -> Self
source§impl From<aeron_publication_stct> for AeronPublication
impl From<aeron_publication_stct> for AeronPublication
source§fn from(value: aeron_publication_t) -> Self
fn from(value: aeron_publication_t) -> Self
impl Send for AeronPublication
impl Sync for AeronPublication
Auto Trait Implementations§
impl Freeze for AeronPublication
impl !RefUnwindSafe for AeronPublication
impl Unpin for AeronPublication
impl !UnwindSafe for AeronPublication
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
)