package riot

  1. Overview
  2. Docs
An actor-model multi-core scheduler for OCaml 5

Install

dune-project
 Dependency

Authors

Maintainers

Sources

riot-0.0.4.tbz
sha256=bd196369f74bbc42f23d262030d5fa04c03f5f00c46bf944f0dcbc193745976f
sha512=f1ca69e05b57e83a1bd173efe51b745d331355a83381e6068743a7626e45dcf515cdd8947180051bddfe9f5727c2732aa0f01a093b04cf33fa4081d32f24fd65

doc/src/riot.net/addr.ml.html

Source file addr.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
type 't raw_addr = string
type tcp_addr = [ `v4 | `v6 ] raw_addr
type stream_addr = [ `Tcp of tcp_addr * int ]

module Ipaddr = struct
  let to_unix : tcp_addr -> Unix.inet_addr = Unix.inet_addr_of_string
  let of_unix : Unix.inet_addr -> tcp_addr = Unix.string_of_inet_addr
end

let loopback : tcp_addr = "0.0.0.0"

let tcp host port =
  assert (String.length host > 0);
  `Tcp (host, port)

let to_unix addr =
  match addr with
  | `Tcp (host, port) ->
      (Unix.SOCK_STREAM, Unix.ADDR_INET (Ipaddr.to_unix host, port))

let to_domain addr = match addr with `Tcp (_host, _) -> Unix.PF_INET

let of_unix sockaddr =
  match sockaddr with
  | Unix.ADDR_INET (host, port) -> tcp (Ipaddr.of_unix host) port
  | Unix.ADDR_UNIX addr -> failwith ("unsupported unix addresses: " ^ addr)

let pp ppf (addr : stream_addr) =
  match addr with `Tcp (host, port) -> Format.fprintf ppf "%s:%d" host port
OCaml

Innovation. Community. Security.