buoy_pool (buoy v0.2.6)

View Source

Summary

Types

buoy_resp/0

-type buoy_resp() ::
          #buoy_resp{state :: body | done,
                     body :: undefined | binary(),
                     content_length :: undefined | non_neg_integer() | chunked,
                     headers :: undefined | [binary()],
                     reason :: undefined | binary(),
                     status_code :: undefined | 100..505}.

buoy_url/0

-type buoy_url() ::
          #buoy_url{host :: host(),
                    hostname :: hostname(),
                    path :: path(),
                    port :: inet:port_number(),
                    protocol :: protocol_http()}.

host/0

-type host() :: binary().

hostname/0

-type hostname() :: binary().

option/0

-type option() ::
          {backlog_size, pos_integer()} |
          {pool_size, pos_integer()} |
          {pool_strategy, random | round_robin} |
          {reconnect, boolean()} |
          {reconnect_time_max, pos_integer() | infinity} |
          {reconnect_time_min, pos_integer()} |
          {socket_options, [gen_tcp:connect_option() | ssl:tls_client_option()]}.

options/0

-type options() :: [option()].

path/0

-type path() :: binary().

protocol_http/0

-type protocol_http() :: http | https.

Functions

init()

-spec init() -> ok.

lookup(Protocol, Hostname, Port)

-spec lookup(protocol_http(), hostname(), inet:port_number()) ->
                {ok, atom()} | {error, pool_not_started | buoy_not_started}.

start(Url)

-spec start(buoy_url()) -> ok | {error, pool_already_started | buoy_not_started}.

start(Buoy_url, Options)

-spec start(buoy_url(), options()) -> ok | {error, pool_already_started | buoy_not_started}.

stop(Buoy_url)

-spec stop(buoy_url()) -> ok | {error, pool_not_started | buoy_not_started}.

terminate()

-spec terminate() -> ok.