Skip to main content

Module engine

Module engine 

Source
Expand description

Engine-based AimX client.

The client rides the shared session engine: a UdsDialer (unlinked — it exists only behind transport-uds) + the symmetric AimxCodec drive run_client, which owns the wire, the request-id demux, and (optionally) reconnect. The public surface is the cheap-clone ClientHandle plus typed convenience wrappers and per-subscription futures::Streams.

run_client is itself spawn-free (it returns a future for a runner to drive); this convenience layer is a client application, so it drives the engine on a tokio::spawned task held by AimxConnection. Dropping the connection drops the handle, which stops the engine gracefully.

Structs§

AimxConnection
A live connection to an AimDB instance over the shared session engine.
DrainResponse
Response from a record.drain call: the values accumulated since the previous drain for this connection’s per-record cursor.
RecordUpdate
One update from a subscription: the record value, plus the delivery metadata the engine tracks alongside it.

Constants§

DEFAULT_CONNECT_TIMEOUT
Default deadline for the connect handshake (dial + hello/Welcome). Bounds the case where a peer accepts the socket but never replies — the engine has no handshake timeout of its own, so the wait would otherwise be unbounded.