swim protocol in ocaml interoperable with membership lib and serf cli
1open Types
2
3type item = {
4 msg : protocol_msg;
5 transmits : int Kcas.Loc.t;
6 created : Mtime.span;
7}
8
9type t
10
11val create : unit -> t
12
13val enqueue :
14 t -> protocol_msg -> transmits:int -> created:Mtime.span -> limit:int -> unit
15
16val depth : t -> int
17
18val drain :
19 t -> max_bytes:int -> encode_size:(protocol_msg -> int) -> protocol_msg list
20
21val invalidate :
22 t ->
23 invalidates:(newer:protocol_msg -> older:protocol_msg -> bool) ->
24 protocol_msg ->
25 unit