AgentHarness.Provider.Sink (AgentHarness v0.2.0)

Copy Markdown View Source

Authenticated mailbox destination used by a provider adapter.

The private reference prevents events from a replaced provider process from being accepted by the logical session.

Summary

Types

t()

@type t() :: %AgentHarness.Provider.Sink{pid: pid(), ref: reference()}

Functions

emit(sink, turn_id, type, data \\ %{}, raw \\ nil)

@spec emit(t(), String.t(), atom(), term(), term()) ::
  :ok | {:error, :reserved_event_type}

expire_request(sink, turn_id, provider_ref, reason, raw \\ nil)

@spec expire_request(t(), String.t(), term(), term(), term()) :: :ok

Expires a pending request that the provider resolved or withdrew itself.

finish(sink, turn_id, status, result \\ %{}, raw \\ nil)

@spec finish(
  t(),
  String.t(),
  :completed | :failed | :cancelled | :interrupted,
  term(),
  term()
) :: :ok

new(pid)

@spec new(pid()) :: t()

request(sink, turn_id, provider_ref, attrs, raw \\ nil)

@spec request(t(), String.t(), term(), keyword(), term()) :: :ok

session_updated(sink, attrs)

@spec session_updated(t(), map()) :: :ok

transport_down(sink, reason)

@spec transport_down(t(), term()) :: :ok