Library
Module
Module type
Parameter
Class
Class type
type action =
| Resolve_a of [ `host ] Domain_name.t
| Resolve_aaaa of [ `host ] Domain_name.t
| Connect of [ `host ] Domain_name.t * int * Ipaddr.t * int
| Connect_failed of [ `host ] Domain_name.t * int
The variant of actions to be performed by the effectful layer.
type event =
| Resolved_a of [ `host ] Domain_name.t * Ipaddr.V4.Set.t
| Resolved_aaaa of [ `host ] Domain_name.t * Ipaddr.V6.Set.t
| Resolved_a_failed of [ `host ] Domain_name.t
| Resolved_aaaa_failed of [ `host ] Domain_name.t
| Connection_failed of [ `host ] Domain_name.t * int * Ipaddr.t * int
| Connected of [ `host ] Domain_name.t * int * Ipaddr.t * int
The variant of events.
val create : int64 -> t
create ts
creates the internal state, initialized with the timestamp ts
(an arbitrary number that must be monotonically increasing).
timer t ts
is a timer function that results in an updated t
and a list of actions that need to be performed (connection to be retried, connection failures to be repored, ...)
val connect :
t ->
int64 ->
id:int ->
[ `host ] Domain_name.t ->
int list ->
t * action list
connect t ts ~id host ports
attempts a connection to host
, where the ports
are attempted in sequence. It results in an updated t
and a list of actions to be performed.
connect_ip t ts ~id addresses
attempts a connection to addresses
. By default, the list will be tried in sequence. The ports will be tried in sequence. The result is an updated t
and a list of actions to be performed.
event t ts ev
results in an updated t
and a list of actions to be performed.
module Waiter_map : sig ... end
A map for waiters and internal id.