Add a handler to be called when a new counter becomes available.
Add a handler to be called when client is closed.
Add a handler to be called when a new counter becomes unavailable or goes away.
Add an exclusive publication and set it up to be recorded.
Add a publication and set it up to be recorded.
Begin an attempt at creating a connection which can be completed by calling aeron_archive_async_connect_poll.
Poll for a complete connection.
Attach segments to the beginning of a recording to restore history that was previously detached.
Poll the response stream once for an error.
Close the connection to the Aeron Archive and free up associated resources.
Connect to an Aeron Archive.
Close and delete the aeron_archive_context_t struct.
Create an aeron_archive_context_t struct.
Specify the client used for communicating with the local Media Driver.
Specify the top level Aeron directory used for communication between the Aeron client and the Media Driver.
Specify the channel used for sending requests to the Aeron Archive.
Specify the stream used for sending requests to the Aeron Archive.
Specify the channel used for receiving responses from the Aeron Archive.
Specify the stream used for receiving responses from the Aeron Archive.
Specify the various credentials callbacks to use when connecting to the Aeron Archive.
Specify the callback to be invoked in addition to any invoker used by the Aeron instance.
Specify the callback to which errors are dispatched while executing archive client commands.
Specify the idle strategy function and associated state used by the client between polling calls.
Specify the message timeout, in nanoseconds, to wait for sending or receiving a message.
Specify whether or not this context owns the client and, therefore, takes responsibility for closing it.
Specify the callback to which recording signals are dispatched while polling for control responses.
Delete segments which have been previously detached from a recording.
Detach segments from the beginning of a recording up to the provided new start position.
Extend an existing, non-active recording for a channel and stream pairing.
Find the last recording that matches the given criteria.
Retrieve the underlying aeron_archive_context_t used to configure the provided aeron_archive_t.
Retrieve the underlying aeron_subscription_t used for reading responses from the connected Aeron Archive.
Retrieve the underlying aeron_archive_context_t used to configure the provided aeron_archive_t.
Retrieve the archive id of the connected Aeron Archive.
Retrieve the underlying aeron_subscription_t used for reading responses from the connected Aeron Archive.
Fetch the stop or active position for the specified recording.
Fetch the position recorded for the specified recording.
Fetch the start position for the specified recording.
Fetch the stop position for the specified recording.
List a recording descriptor for a single recording id.
List active recording subscriptions in the Aeron Archive.
These are the result of calling aeron_archive_start_recording or aeron_archive_extend_recording.
The subscription id in the returned descriptor can be used when calling aeron_archive_stop_recording_subscription.
List all recording descriptors starting at a particular recording id, with a limit of total descriptors delivered.
List all recording descriptors for a given channel fragment and stream id, starting at a particular recording id, with a limit of total descriptors delivered.
Migrate segments from a source recording and attach them to the beginning of a destination recording.
Poll the response stream once for an error.
If another message is present then it will be skipped over, so only call when not expecting another response.
Poll for recording signals, dispatching them to the configured aeron_archive_recording_signal_consumer_func_t in the context
Purge a stopped recording.
i.e. Mark the recording as INVALID at the Archive and delete the corresponding segment files.
The space in the Catalog will be reclaimed upon compaction.
Purge (Detach and delete) segments from the beginning of a recording up to the provided new start position.
Find the active counter id for a stream based on the recording id.
Find the active counter id for a stream based on the session id.
Get the recording id for a given counter id.
Get the source identity for the recording.
Is the recording counter still active?
Start a replay.
Close and delete the aeron_archive_replay_merge_t struct.
Process the operation of the merge. Do not call the processing of fragments on the subscription.
Has the replay_merge failed due to an error?
The image used for the replay and live stream.
Create an aeron_archive_replay_merge_t to manage the merging of a replayed stream into a live stream.
Is the live destination added to the subscription?
Is the live stream merged and the replay stopped?
Poll the image used for the merging replay and live stream.
The aeron_archive_replay_merge_do_work will be called before the poll so that processing of the merge can be done.
Initialize an aeron_archive_replay_params_t with the default values.
Replicate a recording from a source Archive to a destination.
This can be considered a backup for a primary Archive.
The source recording will be replayed via the provided replay channel and use the original stream id.
The behavior of the replication will be governed by the values specified in the aeron_archive_replication_params_t.
Initialize an aeron_archive_replication_params_t with the default values
Position of the recorded stream at the base of a segment file.
Start recording a channel/stream pairing.
Start a replay
Stop all replays matching a recording id.
If recording_id is AERON_NULL_VALUE then match all replays.
Stop recording for the specified channel and stream.
Stop recording a session id specific recording that pertains to the given exclusive publication.
Stop recording a session id specific recording that pertains to the given publication.
Stop recording for the specified subscription id.
This is the subscription id returned from aeron_archive_start_recording or aeron_archive_extend_recording.
Stop a replay session.
Stop a replication by the replication id.
Truncate a stopped recording to the specified position.
The position must be less than the stopped position.
The position must be on a fragment boundary.
Truncating a recording to the start position effectively deletes the recording.
Stop recording for the specified recording id.
Try to stop recording for the specified channel and stream.
Try to stop a recording for the specified subscription id.
This is the subscription id returned from aeron_archive_start_recording or aeron_archive_extend_recording.
Try to stop a replication by the replication id.
Asynchronously add a counter using the given client and return an object to use to determine when the
counter is available.
Gets the registration id for addition of the counter. Note that using this after a call to poll the succeeds or
errors is undefined behaviour. As the async_add_counter_t may have been freed.
Poll the completion of the aeron_async_add_counter
or aeron_async_add_static_counter
calls.
Gets the registration id for addition of the exclusive_publication. Note that using this after a call to poll the
succeeds or errors is undefined behaviour. As the async_add_exclusive_publication_t may have been freed.
Asynchronously add an exclusive publication using the given client and return an object to use to determine when the
publication is available.
Poll the completion of the aeron_async_add_exclusive_publication call.
Asynchronously add a publication using the given client and return an object to use to determine when the
publication is available.
Gets the registration id for addition of the publication. Note that using this after a call to poll the succeeds or
errors is undefined behaviour. As the async_add_publication_t may have been freed.
Poll the completion of the aeron_async_add_publication call.
Asynchronously allocates or returns an existing static counter instance using specified type_id
and
registration_id
. Such counter cannot be deleted and its lifecycle is decoupled from the client that created it.
Returns an object to use to determine when the counter is available.
Asynchronously add a subscription using the given client and return an object to use to determine when the
subscription is available.
Gets the registration id for addition of the subscription. Note that using this after a call to poll the succeeds or
errors is undefined behaviour. As the async_add_subscription_t may have been freed.
Poll the completion of the aeron_async_add_subscription call.
Gets the registration_id for the destination command supplied. Note that this is the correlation_id used for
the specified destination command, not the registration_id for the original parent resource (publication,
subscription).
Abort the given buffer_claim and assign its position as padding.
Commit the given buffer_claim as a complete message available for consumption.
Return the client id in use by the client.
Close and delete aeron_t struct.
Closes the instance of the aeron cnc and frees its resources.
Fetch the sets of constant values associated with this command and control file.
Gets a counters reader for this command and control file. This does not need to be closed manually, resources
are tied to the instance of aeron_cnc.
Reads the current error log for this driver.
Get the current file name of the cnc file.
Initialise an aeron_cnc, which gives user level access to the command and control file used to communicate
with the media driver. Will wait until the media driver has loaded and the cnc file is created, up to timeout_ms.
Use a value of 0 for a non-blocking initialisation.
Read all of the data loss observations from the report in the same media driver instances as the cnc file.
Gets the timestamp of the last heartbeat sent to the media driver from any client.
Return the aeron_context_t that is in use by the given client.
Close and delete aeron_context_t struct.
Create a aeron_context_t struct and initialize with default values.
Request the media driver terminates operation and closes all resources.
Whether to use an invoker to control the conductor agent or spawn a thread.
Create a controlled fragment assembler for use with a subscription.
Delete a controlled fragment assembler.
Handler function to be passed for handling fragment assembly.
Return a pointer to the counter value.
Asynchronously close the counter.
Fill in a structure with the constants in use by a counter.
Check if the counter is closed
@param counter to check
@return true if closed, false otherwise.
Return a reference to the counters reader of the given client.
Get the address for a counter.
Get the label for a counter.
Get the owner id assigned to a counter which will typically be the client id.
Get the reference id assigned to a counter which will typically be the registration id of an associated Image,
Subscription, Publication, etc.
Get the registration id assigned to a counter.
Get the state for a counter.
Get the type id for a counter.
Iterate over allocated counters and find the first matching a given type id and registration id.
Iterate over the counters in the counters_reader and call the given function for each counter.
Get the free for reuse deadline (ms) for a counter.
Get buffer pointers and lengths for the counters reader.
Get the current max counter id.
Get a pointer to the key of a counter’s metadata
Get the default path used by the Aeron media driver.
Return time in milliseconds since epoch. Is wall clock time.
Return current aeron error code (errno) for calling thread.
Return the current aeron error message for calling thread.
Append a padding record log of a given length to make up the log to a position.
Add a destination manually to a multi-destination-cast exclusive publication.
Poll the completion of the add/remove of a destination to/from an exclusive publication.
Remove a destination manually from a multi-destination-cast exclusive publication.
Remove a destination manually from a multi-destination-cast publication.
Get the status of the media channel for this publication.
Asynchronously close the publication.
Fill in a structure with the constants in use by a publication.
Has the exclusive publication closed?
Has the exclusive publication seen an active Subscriber recently?
Get all of the local socket addresses for this exclusive publication. Typically only one representing the control
address.
Non-blocking publish of a buffer containing a message.
Offer a block of pre-formatted message fragments directly into the current term.
Non-blocking publish by gathering buffer vectors into a message.
Get the current position to which the publication has advanced for this stream.
Get the position limit beyond which this publication will be back pressured.
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.
Create a fragment assembler for use with a subscription.
Delete a fragment assembler.
Handler function to be passed for handling fragment assembly.
Get a pointer to the context associated with this message. Only valid during poll handling. Is normally a
pointer to an Image instance.
Calculates the offset of the frame immediately after this one.
Get the current position to which the Image has advanced on reading this message.
Get the number of times to left shift the term count to multiply by term length.
Get all of the field values from the header. This will do a memcpy into the supplied header_values_t pointer.
Count of observed active transports within the image liveness timeout.
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they
will be delivered to the handler up to a limited number of bytes.
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they
will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they
will be delivered to the handler up to a limited number of fragments as specified or the maximum position specified.
Fill in a structure with the constants in use by a image.
Create an image controlled fragment assembler for use with a single image.
Delete an image controlled fragment assembler.
Handler function to be passed for handling fragment assembly.
Peek for new messages in a stream by scanning forward from an initial position. If new messages are found then
they will be delivered to the handler up to a limited position.
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they
will be delivered to the handler up to a limited number of fragments as specified.
The position the stream reached when EOS was received from the publisher. The position will be
INT64_MAX until the stream ends and EOS is set.
Create an image fragment assembler for use with a single image.
Delete an image fragment assembler.
Handler function to be passed for handling fragment assembly.
Is the current consumed position at the end of the stream?
Poll for new messages in a stream. If new messages are found beyond the last consumed position then they
will be delivered to the handler up to a limited number of fragments as specified.
The position this image has been consumed to by the subscriber.
Force the driver to disconnect this image from the remote publication.
Set the subscriber position for this image to indicate where it has been consumed to.
Create a aeron_t client struct and initialize from the aeron_context_t struct.
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.
Determine if an aeron driver is using a given aeron directory.
Call the Conductor main do_work duty cycle once.
Call the Conductor Idle Strategy.
Return time in nanoseconds for machine. Is not wall clock time.
Return a unique correlation id from the driver.
Call stream_out to print the counter labels and values.
Load properties from a string containing name=value pairs and set appropriate environment variables for the
process so that subsequent calls to aeron_driver_context_init will use those values.
Load properties file and set appropriate environment variables for the process so that subsequent
calls to aeron_driver_context_init will use those values.
Load properties from HTTP URL and set environment variables for the process so that subsequent
calls to aeron_driver_context_init will use those values.
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.
Add a destination manually to a multi-destination-cast publication.
Poll the completion of the add/remove of a destination to/from a publication.
Remove a destination manually from a multi-destination-cast publication.
Remove a destination manually from a multi-destination-cast publication.
Get the publication’s channel
Get the status of the media channel for this publication.
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.
Fill in a structure with the constants in use by a publication.
Copy an existing aeron_publication_error_values_t to the supplied pointer. The caller is responsible for freeing the
allocated memory using aeron_publication_error_values_delete when the copy is not longer required.
Delete a instance of aeron_publication_error_values_t that was created when making a copy
(aeron_publication_error_values_copy). This should not be use on the pointer received via the aeron_frame_handler_t.
@param to_delete to be deleted.
Has the publication closed?
Has the publication seen an active Subscriber recently?
Get all of the local socket addresses for this publication. Typically only one representing the control address.
Non-blocking publish of a buffer containing a message.
Non-blocking publish by gathering buffer vectors into a message.
Get the current position to which the publication has advanced for this stream.
Get the position limit beyond which this publication will be back pressured.
Get the publication’s session id
@param publication this
@return session id
Get the publication’s stream id
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.
Remove a previously added handler to be called when a new counter becomes available.
Remove a previously added handler to be called when client is closed.
Remove a previously added handler to be called when a new counter becomes unavailable or goes away.
Start an aeron_t. This may spawn a thread for the Client Conductor.
Add a destination manually to a multi-destination-subscription.
Poll the completion of add/remove of a destination to/from a subscription.
Remove a destination manually from a multi-destination-subscription.
Poll the images under the subscription for available message fragments in blocks.
Get the status of the media channel for this subscription.
Asynchronously close the subscription. 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.
Fill in a structure with the constants in use by a subscription.
Poll in a controlled manner the images under the subscription for available message fragments.
Control is applied to fragments in the stream. If more fragments can be read on another stream
they will even if BREAK or ABORT is returned from the fragment handler.
Iterate over the images for this subscription calling the given function.
Return the image at the given index.
Return the image associated with the given session_id under the given subscription.
Count of images associated to this subscription.
Release the given image and relinquish desire to use the image directly.
Retain the given image for access in the application.
Is the subscription closed.
Is this subscription connected by having at least one open publication image.
Get all of the local socket addresses for this subscription. Multiple addresses can occur if this is a
multi-destination subscription. Addresses will a string representation in numeric form. IPv6 addresses will be
surrounded by ‘[’ and ‘]’ so that the ‘:’ that separate the parts are distinguishable from the port delimiter.
E.g. [fe80::7552:c06e:6bf4:4160]:12345. As of writing the maximum length for a formatted address is 54 bytes
including the NULL terminator. AERON_CLIENT_MAX_LOCAL_ADDRESS_STR_LEN is defined to provide enough space to fit the
returned string. Returned strings will be NULL terminated. If the buffer to hold the address can not hold enough
of the message it will be truncated and the last character will be null.
Poll the images under the subscription for available message fragments.
Retrieves the first local socket address for this subscription. If this is not MDS then it will be the one
representing endpoint for this subscription.
Retrieves the channel URI for this subscription with any wildcard ports filled in. If the channel is not UDP or
does not have a wildcard port (0
), then it will return the original URI.
Return full version and build string.
Return the git sha for the current build.
Return major version number.
Return minor version number.
Return patch version number.
Return version text.