Swim.Dissemination

swim · API reference

type item = {
  msg : Types.protocol_msg;
  transmits : int Kcas.Loc.t;
  created : Mtime.span;
}
type t
val create : unit -> t
val enqueue : 
  t ->
  Types.protocol_msg ->
  transmits:int ->
  created:Mtime.span ->
  limit:int ->
  unit
val depth : t -> int
val drain : 
  t ->
  max_bytes:int ->
  encode_size:(Types.protocol_msg -> int) ->
  Types.protocol_msg list
val invalidate : 
  t ->
  invalidates:(newer:Types.protocol_msg -> older:Types.protocol_msg -> bool) ->
  Types.protocol_msg ->
  unit