pub struct Aeron { /* private fields */ }
Implementations§
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 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>>, timeout: Duration, ) -> Result<AeronSubscription, AeronCError>
Source§impl Aeron
impl Aeron
pub fn async_add_exclusive_publication( &self, uri: &str, stream_id: i32, ) -> Result<AeronAsyncAddExclusivePublication, AeronCError>
Source§impl Aeron
impl Aeron
pub fn add_exclusive_publication( &self, uri: &str, stream_id: i32, timeout: Duration, ) -> Result<AeronExclusivePublication, 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 add_publication( &self, uri: &str, stream_id: i32, timeout: Duration, ) -> Result<AeronPublication, AeronCError>
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
Sourcepub fn error_log_read_once<AeronErrorLogReaderFuncHandlerImpl: FnMut(i32, i64, i64, &str)>(
buffer: *const u8,
buffer_size: usize,
reader: AeronErrorLogReaderFuncHandlerImpl,
since_timestamp: i64,
) -> usize
pub fn error_log_read_once<AeronErrorLogReaderFuncHandlerImpl: FnMut(i32, i64, i64, &str)>( buffer: *const u8, buffer_size: usize, reader: AeronErrorLogReaderFuncHandlerImpl, since_timestamp: i64, ) -> usize
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
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
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>
Sourcepub fn lookup_interfaces_once<AeronIfaddrFuncHandlerImpl: FnMut(&str, Sockaddr, Sockaddr, c_uint) -> c_int>(
func: AeronIfaddrFuncHandlerImpl,
) -> Result<i32, AeronCError>
pub fn lookup_interfaces_once<AeronIfaddrFuncHandlerImpl: FnMut(&str, Sockaddr, Sockaddr, c_uint) -> c_int>( func: AeronIfaddrFuncHandlerImpl, ) -> Result<i32, AeronCError>
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care
pub fn lookup_interfaces_from_ifaddrs<AeronIfaddrFuncHandlerImpl: AeronIfaddrFuncCallback>( func: Option<&Handler<AeronIfaddrFuncHandlerImpl>>, ifaddrs: &Ifaddrs, ) -> Result<i32, AeronCError>
Sourcepub fn lookup_interfaces_from_ifaddrs_once<AeronIfaddrFuncHandlerImpl: FnMut(&str, Sockaddr, Sockaddr, c_uint) -> c_int>(
func: AeronIfaddrFuncHandlerImpl,
ifaddrs: &Ifaddrs,
) -> Result<i32, AeronCError>
pub fn lookup_interfaces_from_ifaddrs_once<AeronIfaddrFuncHandlerImpl: FnMut(&str, Sockaddr, Sockaddr, c_uint) -> c_int>( func: AeronIfaddrFuncHandlerImpl, ifaddrs: &Ifaddrs, ) -> Result<i32, AeronCError>
NOTE: aeron must not store this closure and instead use it immediately. If not you will get undefined behaviour, use with care