Process-owned bridge between one protocol implementation and MOQX.Transport.
The driver owns the transport context, stream handles and receive loop. A protocol implementation remains a pure reducer and requests IO through transition actions keyed by logical stream names.
Summary
Types
Functions
@spec accept_subscription( MOQX.Client.t(), MOQX.PublicationSubscriptionRequest.t(), MOQX.PublishedTrack.t() | nil, keyword() ) :: {:ok, MOQX.PublishedSubscription.t()} | {:ok, MOQX.PublishedTrack.t(), MOQX.PublishedSubscription.t()} | {:error, term()}
@spec add_track(MOQX.Client.t(), MOQX.Publication.t(), binary(), keyword()) :: {:ok, MOQX.PublishedTrack.t()} | {:error, term()}
@spec close(MOQX.Client.t(), term()) :: :ok | {:error, term()}
@spec finish_publication(MOQX.Client.t(), MOQX.Publication.t(), keyword()) :: :ok | {:error, term()}
@spec finish_subscription( MOQX.Client.t(), MOQX.PublishedSubscription.t(), keyword() ) :: :ok | {:error, term()}
@spec publish(MOQX.Client.t(), [binary()], keyword()) :: {:ok, MOQX.Publication.t()} | {:error, term()}
@spec publish_empty_group(MOQX.Client.t(), MOQX.PublishedTrack.t(), non_neg_integer()) :: :ok | {:error, term()}
@spec publish_object(MOQX.Client.t(), MOQX.PublishedTrack.t(), MOQX.Object.t()) :: :ok | {:error, term()}
@spec reject_subscription( MOQX.Client.t(), MOQX.PublicationSubscriptionRequest.t(), MOQX.SubscriptionRejection.t() ) :: :ok | {:error, term()}
@spec subscribe(MOQX.Client.t(), MOQX.TrackRef.t(), keyword()) :: {:ok, MOQX.Subscription.t()} | {:error, term()}
@spec unsubscribe(MOQX.Client.t(), MOQX.Subscription.t()) :: :ok | {:error, term()}
@spec update_subscription(MOQX.Client.t(), MOQX.Subscription.t(), keyword()) :: :ok | {:error, term()}
@spec withdraw_track(MOQX.Client.t(), MOQX.PublishedTrack.t(), keyword()) :: :ok | {:error, term()}