sig
type t
val create :
?logfun:Versioned_typed_tcp.S.logfun ->
?now:(unit -> Core.Std.Time.t) ->
?enforce_unique_remote_name:bool ->
?is_client_ip_authorized:(string -> bool) ->
?warn_when_free_connections_lte_pct:float ->
?max_clients:int ->
listen_port:int ->
My_name.t -> Versioned_typed_tcp.S.Server.t Import.Deferred.t
val port : Versioned_typed_tcp.S.Server.t -> int
val close : Versioned_typed_tcp.S.Server.t -> Remote_name.t -> unit
val listen :
Versioned_typed_tcp.S.Server.t ->
(Remote_name.t, Recv.t) Versioned_typed_tcp.Server_msg.t Import.Stream.t
val listen_ignore_errors :
?stop:unit Import.Deferred.t ->
Versioned_typed_tcp.S.Server.t -> Recv.t Import.Stream.t
val send :
Versioned_typed_tcp.S.Server.t ->
Remote_name.t ->
Send.t -> [ `Dropped | `Sent of Core.Std.Time.t ] Import.Deferred.t
val send_ignore_errors :
Versioned_typed_tcp.S.Server.t -> Remote_name.t -> Send.t -> unit
val send_to_all :
Versioned_typed_tcp.S.Server.t ->
Send.t -> [ `Dropped | `Partial_success | `Sent ] Import.Deferred.t
val send_to_all_ignore_errors :
Versioned_typed_tcp.S.Server.t -> Send.t -> unit
val flushed :
Versioned_typed_tcp.S.Server.t ->
cutoff:unit Import.Deferred.t ->
([ `Flushed of Remote_name.t list ] *
[ `Not_flushed of Remote_name.t list ])
Import.Deferred.t
val invariant : Versioned_typed_tcp.S.Server.t -> unit
end