adk_artifact_stream (erlang_adk v0.10.0)
View SourceCapability-negotiated, credit/ack artifact transfer facade.
A stream handle is bound to the process that opened it. Upload chunks are synchronous and return an acknowledgement plus the next credit grant. Downloads require an explicit credit grant and an acknowledgement for every delivered chunk; at most one chunk is in flight.
Summary
Types
-type event() :: {chunk, pos_integer(), non_neg_integer(), binary()} | {done, map()} | {error, timeout | cancelled | unavailable | term()}.
Functions
-spec ack(stream(), pos_integer()) -> ok | {error, term()}.
-spec credit(stream(), pos_integer(), pos_integer()) -> ok | {error, term()}.
-spec finish_upload(stream(), pos_integer()) -> {ok, map()} | {error, term()}.
-spec open_download({module(), term()}, adk_artifact_service:scope(), binary(), adk_artifact_service:selector(), map()) -> {ok, stream(), map()} | {error, term()}.
-spec send_chunk(stream(), pos_integer(), binary()) -> {ok, map()} | {error, term()}.
-spec send_chunk(stream(), pos_integer(), binary(), pos_integer()) -> {ok, map()} | {error, term()}.