Struct rusteron_media_driver::Aeron
source · pub struct Aeron { /* private fields */ }
Implementations§
source§impl Aeron
impl Aeron
sourcepub fn new(context: &AeronContext) -> Result<Self, AeronCError>
pub fn new(context: &AeronContext) -> Result<Self, AeronCError>
sourcepub fn start(&self) -> Result<i32, AeronCError>
pub fn start(&self) -> Result<i32, AeronCError>
Start an Aeron
. This may spawn a thread for the Client Conductor.
§Return
0 for success and -1 for error.
sourcepub fn main_do_work(&self) -> Result<i32, AeronCError>
pub fn main_do_work(&self) -> Result<i32, AeronCError>
Call the Conductor main do_work duty cycle once.
Client must have been created with use conductor invoker set to true.
§Return
0 for success and -1 for error.
sourcepub fn main_idle_strategy(&self, work_count: c_int)
pub fn main_idle_strategy(&self, work_count: c_int)
sourcepub fn close(&self) -> Result<i32, AeronCError>
pub fn close(&self) -> Result<i32, AeronCError>
sourcepub fn is_closed(&self) -> bool
pub fn is_closed(&self) -> bool
Determines if the client has been closed, e.g. via a driver timeout. Don’t call this method after calling aeron_close as that will have already freed the associated memory.
§Return
true if it has been closed, false otherwise.
sourcepub fn print_counters(
&self,
stream_out: Option<unsafe extern "C" fn(arg1: *const c_char)>,
)
pub fn print_counters( &self, stream_out: Option<unsafe extern "C" fn(arg1: *const c_char)>, )
Call stream_out to print the counter labels and values.
§Parameters
stream_out
to call for each label and value.
sourcepub fn context(&self) -> AeronContext
pub fn context(&self) -> AeronContext
Return the AeronContext
that is in use by the given client.
§Return
the AeronContext
for the given client or NULL for an error.
sourcepub fn next_correlation_id(&self) -> i64
pub fn next_correlation_id(&self) -> i64
sourcepub fn counters_reader(&self) -> AeronCountersReader
pub fn counters_reader(&self) -> AeronCountersReader
Return a reference to the counters reader of the given client.
The AeronCountersReader
is maintained by the client. And should not be freed.
§Return
AeronCountersReader
or NULL for error.
sourcepub fn add_available_counter_handler(
&self,
pair: &AeronAvailableCounterPair,
) -> Result<i32, AeronCError>
pub fn add_available_counter_handler( &self, pair: &AeronAvailableCounterPair, ) -> Result<i32, AeronCError>
sourcepub fn remove_available_counter_handler(
&self,
pair: &AeronAvailableCounterPair,
) -> Result<i32, AeronCError>
pub fn remove_available_counter_handler( &self, pair: &AeronAvailableCounterPair, ) -> Result<i32, AeronCError>
Remove a previously added handler to be called when a new counter becomes unavailable or goes away.
NOTE: This function blocks until the handler is removed by the client conductor thread.
§Parameters
pair
holding the handler to call and a clientd to pass when called.
§Return
0 for success and -1 for error
sourcepub fn add_close_handler(
&self,
pair: &AeronCloseClientPair,
) -> Result<i32, AeronCError>
pub fn add_close_handler( &self, pair: &AeronCloseClientPair, ) -> Result<i32, AeronCError>
sourcepub fn remove_close_handler(
&self,
pair: &AeronCloseClientPair,
) -> Result<i32, AeronCError>
pub fn remove_close_handler( &self, pair: &AeronCloseClientPair, ) -> Result<i32, AeronCError>
sourcepub fn version_full(&self) -> &str
pub fn version_full(&self) -> &str
sourcepub fn version_text(&self) -> &str
pub fn version_text(&self) -> &str
sourcepub fn version_major() -> Result<i32, AeronCError>
pub fn version_major() -> Result<i32, AeronCError>
sourcepub fn version_minor() -> Result<i32, AeronCError>
pub fn version_minor() -> Result<i32, AeronCError>
sourcepub fn version_patch() -> Result<i32, AeronCError>
pub fn version_patch() -> Result<i32, AeronCError>
sourcepub fn version_gitsha(&self) -> &str
pub fn version_gitsha(&self) -> &str
sourcepub fn nano_clock() -> i64
pub fn nano_clock() -> i64
Return time in nanoseconds for machine. Is not wall clock time.
§Return
nanoseconds since epoch for machine.
sourcepub fn epoch_clock() -> i64
pub fn epoch_clock() -> i64
sourcepub fn is_driver_active(
dirname: &str,
timeout_ms: i64,
log_func: aeron_log_func_t,
) -> bool
pub fn is_driver_active( dirname: &str, timeout_ms: i64, log_func: aeron_log_func_t, ) -> bool
sourcepub fn properties_buffer_load(buffer: &str) -> Result<i32, AeronCError>
pub fn properties_buffer_load(buffer: &str) -> Result<i32, AeronCError>
sourcepub fn properties_file_load(filename: &str) -> Result<i32, AeronCError>
pub fn properties_file_load(filename: &str) -> Result<i32, AeronCError>
sourcepub fn properties_http_load(url: &str) -> Result<i32, AeronCError>
pub fn properties_http_load(url: &str) -> Result<i32, AeronCError>
sourcepub fn properties_load(url_or_filename: &str) -> Result<i32, AeronCError>
pub fn properties_load(url_or_filename: &str) -> Result<i32, AeronCError>
Load properties based on URL or filename. If string contains file or http URL, it will attempt to load properties from a file or http as indicated. If not a URL, then it will try to load the string as a filename.
§Parameters
url_or_filename
to load properties from.
§Return
0 for success and -1 for error.
sourcepub fn errcode() -> Result<i32, AeronCError>
pub fn errcode() -> Result<i32, AeronCError>
Return current aeron error code (errno) for calling thread.
§Return
aeron error code for calling thread.
sourcepub fn errmsg(&self) -> &str
pub fn errmsg(&self) -> &str
Return the current aeron error message for calling thread.
§Return
aeron error message for calling thread.
sourcepub fn default_path(
path: *mut c_char,
path_length: usize,
) -> Result<i32, AeronCError>
pub fn default_path( path: *mut c_char, path_length: usize, ) -> Result<i32, AeronCError>
Get the default path used by the Aeron media driver.
§Parameters
-
path
buffer to store the path. -
path_length
space available in the buffer
§Return
-1 if there is an issue or the number of bytes written to path excluding the terminator \0
. If this
is equal to or greater than the path_length then the path has been truncated.
pub fn randomised_int32() -> i32
pub fn thread_set_name(role_name: &str)
pub fn nano_sleep(nanoseconds: u64)
pub fn micro_sleep(microseconds: c_uint)
pub fn thread_set_affinity( role_name: &str, cpu_affinity_no: u8, ) -> Result<i32, AeronCError>
pub fn error_log_exists(buffer: *const u8, buffer_size: usize) -> bool
pub fn error_log_read<AeronErrorLogReaderFuncHandlerImpl: AeronErrorLogReaderFuncCallback>( buffer: *const u8, buffer_size: usize, reader: Option<&Handler<AeronErrorLogReaderFuncHandlerImpl>>, since_timestamp: i64, ) -> usize
pub fn semantic_version_compose(major: u8, minor: u8, patch: u8) -> i32
pub fn semantic_version_major(version: i32) -> u8
pub fn semantic_version_minor(version: i32) -> u8
pub fn semantic_version_patch(version: i32) -> u8
pub fn udp_uri_parse( uri: *mut c_char, params: &AeronUdpChannelParams, ) -> Result<i32, AeronCError>
pub fn ipc_uri_parse( uri: *mut c_char, params: &AeronIpcChannelParams, ) -> Result<i32, AeronCError>
sourcepub fn delete_directory(dirname: &str) -> Result<i32, AeronCError>
pub fn delete_directory(dirname: &str) -> Result<i32, AeronCError>
sourcepub fn set_thread_affinity_on_start(state: *mut c_void, role_name: &str)
pub fn set_thread_affinity_on_start(state: *mut c_void, role_name: &str)
Affinity setting function that complies with the aeron_agent_on_start_func_t structure that can
be used as an agent start function. The state should be the AeronDriverContext
* and the function
will match the values “conductor”, “sender”, “receiver” and use the respective configuration options from
the AeronDriverContext
.
§Parameters
-
state
client information passed to function, should be theAeronDriverContext
*. -
role_name
name of the role specified on the agent.
pub fn set_socket_non_blocking(fd: aeron_socket_t) -> Result<i32, AeronCError>
pub fn socket(domain: c_int, type_: c_int, protocol: c_int) -> aeron_socket_t
pub fn close_socket(socket: aeron_socket_t)
pub fn connect( fd: aeron_socket_t, address: &Sockaddr, address_length: socklen_t, ) -> Result<i32, AeronCError>
pub fn bind( fd: aeron_socket_t, address: &Sockaddr, address_length: socklen_t, ) -> Result<i32, AeronCError>
pub fn net_init() -> Result<i32, AeronCError>
pub fn getsockopt( fd: aeron_socket_t, level: c_int, optname: c_int, optval: *mut c_void, optlen: *mut socklen_t, ) -> Result<i32, AeronCError>
pub fn setsockopt( fd: aeron_socket_t, level: c_int, optname: c_int, optval: *const c_void, optlen: socklen_t, ) -> Result<i32, AeronCError>
pub fn sendmsg(fd: aeron_socket_t, msghdr: &Msghdr, flags: c_int) -> isize
pub fn send( fd: aeron_socket_t, buf: *const c_void, len: usize, flags: c_int, ) -> isize
pub fn recvmsg(fd: aeron_socket_t, msghdr: &Msghdr, flags: c_int) -> isize
pub fn res_header_entry_length( res: *mut c_void, remaining: usize, ) -> Result<i32, AeronCError>
pub fn logbuffer_check_term_length(term_length: u64) -> Result<i32, AeronCError>
pub fn logbuffer_check_page_size(page_size: u64) -> Result<i32, AeronCError>
pub fn is_directory(path: &str) -> Result<i32, AeronCError>
pub fn mkdir_recursive( pathname: &str, permission: c_int, ) -> Result<i32, AeronCError>
pub fn msync(addr: *mut c_void, length: usize) -> Result<i32, AeronCError>
pub fn file_length(path: &str) -> i64
pub fn usable_fs_space(path: &str) -> u64
pub fn usable_fs_space_disabled(path: &str) -> u64
pub fn ipc_publication_location( dst: *mut c_char, length: usize, aeron_dir: &str, correlation_id: i64, ) -> Result<i32, AeronCError>
pub fn temp_filename(filename: *mut c_char, length: usize) -> usize
pub fn file_resolve( parent: &str, child: &str, buffer: *mut c_char, buffer_len: usize, ) -> Result<i32, AeronCError>
pub fn flow_control_parse_tagged_options( options_length: usize, options: &str, flow_control_options: &AeronFlowControlTaggedOptions, ) -> Result<i32, AeronCError>
pub fn flow_control_calculate_retransmission_length( resend_length: usize, term_buffer_length: usize, term_offset: usize, retransmit_receiver_window_multiple: usize, ) -> usize
pub fn agent_on_start_load(name: &str) -> aeron_agent_on_start_func_t
pub fn set_errno(errcode: c_int)
pub fn err_set( errcode: c_int, function: &str, filename: &str, line_number: c_int, format: &str, )
pub fn err_append( function: &str, filename: &str, line_number: c_int, format: &str, )
pub fn err_clear()
pub fn parse_port_range( range_str: &str, low_port: &mut u16, high_port: &mut u16, ) -> Result<i32, AeronCError>
pub fn config_parse_inferable_boolean( inferable_boolean: &str, def: aeron_inferable_boolean_t, ) -> aeron_inferable_boolean_t
pub fn format_date(str_: *mut c_char, count: usize, timestamp: i64)
pub fn format_number_to_locale( value: c_longlong, buffer: *mut c_char, buffer_len: usize, ) -> *mut c_char
pub fn format_to_hex( str_: *mut c_char, str_length: usize, data: *const u8, data_len: usize, )
pub fn ip_addr_resolver( host: &str, sockaddr: &SockaddrStorage, family_hint: c_int, protocol: c_int, ) -> Result<i32, AeronCError>
pub fn udp_port_resolver( port_str: &str, optional: bool, ) -> Result<i32, AeronCError>
pub fn try_parse_ipv4(host: &str, sockaddr: &SockaddrStorage) -> bool
pub fn ipv4_addr_resolver( host: &str, protocol: c_int, sockaddr: &SockaddrStorage, ) -> Result<i32, AeronCError>
pub fn try_parse_ipv6(host: &str, sockaddr: &SockaddrStorage) -> bool
pub fn ipv6_addr_resolver( host: &str, protocol: c_int, sockaddr: &SockaddrStorage, ) -> Result<i32, AeronCError>
pub fn lookup_interfaces<AeronIfaddrFuncHandlerImpl: AeronIfaddrFuncCallback>( func: Option<&Handler<AeronIfaddrFuncHandlerImpl>>, ) -> Result<i32, AeronCError>
pub fn lookup_interfaces_from_ifaddrs<AeronIfaddrFuncHandlerImpl: AeronIfaddrFuncCallback>( func: Option<&Handler<AeronIfaddrFuncHandlerImpl>>, ifaddrs: &Ifaddrs, ) -> Result<i32, AeronCError>
pub fn set_getifaddrs( get_func: aeron_getifaddrs_func_t, free_func: aeron_freeifaddrs_func_t, )
pub fn interface_parse_and_resolve( interface_str: &str, sockaddr: &SockaddrStorage, ) -> Result<usize, AeronCError>
pub fn ipv4_netmask_from_prefixlen(prefixlen: usize) -> u32
pub fn find_interface( interface_str: &str, if_addr: &SockaddrStorage, if_index: *mut c_uint, ) -> Result<i32, AeronCError>
pub fn find_unicast_interface( family: c_int, interface_str: &str, interface_addr: &SockaddrStorage, interface_index: *mut c_uint, ) -> Result<i32, AeronCError>
pub fn format_source_identity( buffer: *mut c_char, length: usize, addr: &SockaddrStorage, ) -> Result<i32, AeronCError>
pub fn netutil_get_so_buf_lengths( default_so_rcvbuf: &mut usize, default_so_sndbuf: &mut usize, ) -> Result<i32, AeronCError>
pub fn parse_size64(str_: &str) -> Result<u64, AeronCError>
pub fn parse_duration_ns(str_: &str) -> Result<u64, AeronCError>
pub fn parse_bool(str_: &str, def: bool) -> bool
pub fn address_split( address_str: &str, parsed_address: &AeronParsedAddress, ) -> Result<i32, AeronCError>
pub fn interface_split( interface_str: &str, parsed_interface: &AeronParsedInterface, ) -> Result<i32, AeronCError>
pub fn parse_get_line( line: *mut c_char, max_length: usize, buffer: &str, ) -> Result<i32, AeronCError>
pub fn get_inner(&self) -> *mut aeron_t
source§impl Aeron
impl Aeron
pub fn async_add_counter( &self, type_id: i32, key_buffer: &[u8], label_buffer: &str, ) -> Result<AeronAsyncAddCounter, AeronCError>
source§impl Aeron
impl Aeron
pub fn async_add_publication( &self, uri: &str, stream_id: i32, ) -> Result<AeronAsyncAddPublication, AeronCError>
source§impl Aeron
impl Aeron
pub fn async_add_subscription<AeronAvailableImageHandlerImpl: AeronAvailableImageCallback, AeronUnavailableImageHandlerImpl: AeronUnavailableImageCallback>( &self, uri: &str, stream_id: i32, on_available_image_handler: Option<&Handler<AeronAvailableImageHandlerImpl>>, on_unavailable_image_handler: Option<&Handler<AeronUnavailableImageHandlerImpl>>, ) -> Result<AeronAsyncAddSubscription, AeronCError>
source§impl Aeron
impl Aeron
pub fn async_add_exclusive_publication( &self, uri: &str, stream_id: i32, ) -> Result<AeronAsyncAddExclusivePublication, AeronCError>
§impl Aeron
impl Aeron
pub fn new_blocking( context: &AeronContext, timeout: Duration, ) -> Result<Self, AeronCError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Aeron
impl !RefUnwindSafe for Aeron
impl !Send for Aeron
impl !Sync for Aeron
impl Unpin for Aeron
impl !UnwindSafe for Aeron
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
)