package atacama

  1. Overview
  2. Docs

Source file socket.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
open Riot

type t = {
  socket : Net.Socket.stream_socket;
  transport : (module Transport.Intf);
  buffer_size : int;
}

let pp ppf t = Format.fprintf ppf "Socket<%d>" (Obj.magic t.socket)
let make socket transport buffer_size = { socket; transport; buffer_size }

let handshake ({ socket; transport = (module T : Transport.Intf); _ } as t) =
  match T.handshake socket with Ok () -> Ok t | Error reason -> Error reason

let receive
    { socket; transport = (module T : Transport.Intf); buffer_size = len }
    ~timeout =
  T.receive ~timeout ~len socket

let send { socket; transport = (module T : Transport.Intf); _ } data =
  T.send data socket

let close { socket; transport = (module T : Transport.Intf); _ } =
  T.close socket
OCaml

Innovation. Community. Security.