Packages
ankh
0.8.5
0.17.0
0.16.0
0.15.0
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Pure Elixir HTTP/2 implementation
Current section
Files
Jump to
Current section
Files
lib/ankh/transport.ex
defmodule Ankh.Transport do
@moduledoc """
Transport behavior
"""
@typedoc "Transport socket"
@type t :: any()
@typedoc """
Transport options
Valid options are:
- `transport_opts`: Transport options for the tcp/ssl erlang modules
"""
@type options :: Keyword.t()
@doc """
Accepts a client connection
"""
@callback accept(t, Keyword.t()) :: {:ok, t} | {:error, any()}
@doc """
Closes the connection
"""
@callback close(t()) :: :ok | {:error, any()}
@doc """
Connects to an host
"""
@callback connect(URI.t(), Keyword.t()) :: {:ok, t()} | {:error, any()}
@doc """
Sends data
"""
@callback send(t(), iodata()) :: :ok | {:error, any()}
@doc """
Receives data
"""
@callback recv(t(), integer) :: {:ok, iodata()} | {:error, any()}
@doc """
Handles transport messages
"""
@callback handle_msg(any()) :: {:ok, iodata()} | {:error, any()}
end