Struct rusteron_client::AeronPublication

source ·
pub struct AeronPublication { /* private fields */ }

Implementations§

source§

impl AeronPublication

source

pub fn new_zeroed() -> Result<Self, AeronCError>

source

pub fn offer<AeronReservedValueSupplierHandlerImpl: AeronReservedValueSupplierCallback>( &self, buffer: &[u8], reserved_value_supplier: Option<&Handler<AeronReservedValueSupplierHandlerImpl>>, ) -> i64

Non-blocking publish of a buffer containing a message.

§Parameters
  • buffer to publish.

  • length of the buffer.

  • 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.

source

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.

source

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 (AeronPublicationry_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.

source

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

source

pub fn is_closed(&self) -> bool

Has the publication closed?

§Return

true if this publication is closed.

source

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.

source

pub fn constants( &self, constants: &AeronPublicationConstants, ) -> Result<i32, AeronCError>

Fill in a structure with the constants in use by a publication.

§Parameters
  • publication to get the constants for.

  • constants structure to fill in with the constants

§Return

0 for success and -1 for error.

source

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.

source

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.

source

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.

source

pub fn channel(&self) -> &str

Get the publication’s channel

§Return

channel uri string

source

pub fn stream_id(&self) -> i32

Get the publication’s stream id

§Return

stream id

source

pub fn session_id(&self) -> i32

Get the publication’s session id

§Return

session id

source

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_sockaddrs

source

pub fn get_inner(&self) -> *mut aeron_publication_t

source§

impl AeronPublication

Trait Implementations§

source§

impl Clone for AeronPublication

source§

fn clone(&self) -> AeronPublication

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AeronPublication

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for AeronPublication

source§

type Target = aeron_publication_stct

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl From<&AeronPublication> for *mut aeron_publication_t

source§

fn from(value: &AeronPublication) -> Self

Converts to this type from the input type.
source§

impl From<*const aeron_publication_stct> for AeronPublication

source§

fn from(value: *const aeron_publication_t) -> Self

Converts to this type from the input type.
source§

impl From<*mut aeron_publication_stct> for AeronPublication

source§

fn from(value: *mut aeron_publication_t) -> Self

Converts to this type from the input type.
source§

impl From<AeronPublication> for *mut aeron_publication_t

source§

fn from(value: AeronPublication) -> Self

Converts to this type from the input type.
source§

impl From<AeronPublication> for aeron_publication_t

source§

fn from(value: AeronPublication) -> Self

Converts to this type from the input type.
source§

impl From<aeron_publication_stct> for AeronPublication

source§

fn from(value: aeron_publication_t) -> Self

Converts to this type from the input type.
§

impl Send for AeronPublication

§

impl Sync for AeronPublication

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.