Resolver_lwt.SModule type that specialises Conduit.RESOLVER to use Lwt threads
Abstract type of the cooperative threading library used, normally defined via the IO module type
type svc = Resolver.serviceAbstract type for a service entry, which maps a URI scheme into a protocol handler and TCP port
val sexp_of_svc : svc -> Sexplib0.Sexp.tval svc_of_sexp : Sexplib0.Sexp.t -> svctype rewrite_fn = svc -> Uri.t -> Conduit.endp ioA rewrite function resolves a service and a URI into a concrete endpoint.
val (++) : service_fn -> service_fn -> service_fnf ++ g is the composition of the service functions f and g.
val init :
?service:service_fn ->
?rewrites:(string * rewrite_fn) list ->
unit ->
tinit ?service ?rewrites will initialize the resolver and return a state handler. The service argument should contain the system-specific resolution mechanism for URI schemas.
The rewrites argument can optionally override a subset of the URI domain name with the given rewrite_fn to permit custom resolution rules. For example, a rewrite rule for ".xen" would let the rewrite function resolve hostnames such as "foo.xen" into a shared memory channel for the "foo" virtual machine.
val add_rewrite : host:string -> f:rewrite_fn -> t -> unitadd_rewrite ~host f t will add to the t resolver the f rewrite rule for all the domain names that shortest-prefix match host
val set_service : f:service_fn -> t -> unitval service : t -> service_fnservice t is the function which is called when trying to resolve a hostname with t.
val resolve_uri :
?rewrites:(string * rewrite_fn) list ->
uri:Uri.t ->
t ->
Conduit.endp ioresolve_uri ?rewrites ~uri t will use t to resolve the uri into a concrete endpoint. Any rewrites that are passed in will be overlayed on the existing rules within the t resolver, but not otherwise modify it.