Ankh.Protocol protocol (ankh v0.14.4)

HTTP Protocol interface

HTTP protocol implementations like Ankh.HTTP1 and Ankh.HTTP2 implement this protocol and can be used via Ankh.HTTP.

Link to this section Summary

Types

Protocol options

Request reference

t()

Ankh protocol

Functions

Reports a connection error

Sends a request

Handles transport messages

Link to this section Types

Specs

options() :: keyword()

Protocol options

Link to this type

request_ref()

Specs

request_ref() :: reference()

Request reference

Specs

t() :: struct()

Ankh protocol

Link to this section Functions

Link to this function

accept(protocol, uri, transport, socket, options)

Specs

accept(
  t(),
  URI.t(),
  Ankh.Transport.t(),
  Ankh.Transport.socket(),
  Ankh.Transport.options()
) :: {:ok, t()} | {:error, any()}

Accepts a client connection

Link to this function

connect(protocol, uri, transport, options)

Specs

connect(t(), URI.t(), Ankh.Transport.t(), Ankh.Transport.options()) ::
  {:ok, t()} | {:error, any()}

Connects to an host

Link to this function

error(protocol)

Specs

error(t()) :: :ok | {:error, any()}

Reports a connection error

Link to this function

request(protocol, request)

Specs

request(t(), Ankh.HTTP.Request.t()) ::
  {:ok, t(), request_ref()} | {:error, any()}

Sends a request

Link to this function

respond(protocol, request_reference, response)

Specs

respond(t(), request_ref(), Ankh.HTTP.Response.t()) ::
  {:ok, t()} | {:error, any()}

Sends a response

Link to this function

stream(protocol, messages)

Specs

stream(t(), any()) :: {:ok, t(), [Ankh.HTTP.response()]} | {:error, any()}

Handles transport messages