Swim.Protocol_pure

swim · API reference

type 'a transition = {
  new_state : 'a;
  broadcasts : Types.protocol_msg list;
  events : Types.node_event list;
}
val no_change : 'a -> 'a transition
val node_id_of_msg : Types.protocol_msg -> Types.node_id
val incarnation_of_msg : Types.protocol_msg -> Types.incarnation option
val handle_alive : 
  self:Types.node_id ->
  Types.member_snapshot ->
  Types.protocol_msg ->
  now:Mtime.span ->
  Types.member_snapshot transition
val handle_suspect : 
  self:Types.node_id ->
  Types.member_snapshot ->
  Types.protocol_msg ->
  now:Mtime.span ->
  Types.member_snapshot transition
val handle_dead : 
  Types.member_snapshot ->
  Types.protocol_msg ->
  now:Mtime.span ->
  Types.member_snapshot transition
val suspicion_timeout : Types.config -> node_count:int -> float
val retransmit_limit : Types.config -> node_count:int -> int
val next_probe_target : 
  self:Types.node_id ->
  probe_index:int ->
  members:Types.node_info list ->
  (Types.node_info * int) option
val invalidates : newer:Types.protocol_msg -> older:Types.protocol_msg -> bool
val merge_member_state : 
  local:Types.member_snapshot ->
  remote:Types.member_snapshot ->
  Types.member_snapshot
val select_indirect_targets : 
  self:Types.node_id ->
  exclude:Types.node_id ->
  count:int ->
  members:Types.node_info list ->
  Types.node_info list