adk_live_transport behaviour (erlang_adk v0.7.0)

View Source

Injected full-duplex transport contract for Live providers.

open/2 returns a private handle and asynchronously reports transport state to Owner using the messages below. send/2 may return busy; the session then retains the frame in its bounded ingress queue until a writable message arrives.

{adk_live_transport, Handle, connected} {adk_live_transport, Handle, writable} {adk_live_transport, Handle, {sent, SendRef}} {adk_live_transport, Handle, {frame, Binary}} {adk_live_transport, Handle, {closed, OpaqueReason}}

Implementations must redact credentials, endpoint query strings and provider resumption handles from errors and diagnostic state.

Summary

Types

handle/0

-type handle() :: pid() | port() | reference() | term().

Callbacks

close/2

-callback close(Handle :: handle(), Reason :: term()) -> ok.

consumed/2

(optional)
-callback consumed(Handle :: handle(), Count :: pos_integer()) -> ok.

open/2

-callback open(Owner :: pid(), Options :: map()) -> {ok, handle()} | {error, term()}.

send/2

-callback send(Handle :: handle(), Frame :: binary()) -> ok | {ok, term()} | {error, busy | term()}.