Up

Module Repeater (To_server_msg : Datum) (To_client_msg : Datum) (Server_name : Name) (Client_name : Name) (Mode : Mode)

Parameters

Signature

type t
val create : ?is_client_ip_authorized:(string -> bool) -> is_client_allowed:(Client_name.t -> bool) -> repeater_name:string -> listen_port:int -> server_ip:string -> server_port:int -> server_name:Server_name.t -> t Import.Deferred.t
type ('state, 'send, 'recv) filter = 'recv -> state:'state -> client_name:Client_name.t -> server_name:Server_name.t -> ('send, 'recv) Repeater_hook_result.t
val start : t -> on_connect:(Client_name.t -> 'state Core.Std.Or_error.t) -> to_server_msg_filter:('state, To_client_msg.t, To_server_msg.t) filter -> to_client_msg_filter:('state, To_server_msg.t, To_client_msg.t) filter -> on_error:(client_name:Client_name.t -> server_name:Server_name.t -> state:'state -> [
| `repeater_to_client
| `repeater_to_server
] -> Repeater_error.t -> unit) -> on_connecting_error:(client_name:Client_name.t -> server_name:Server_name.t -> Core.Std.Error.t -> unit) -> unit
val send_to_all_clients : t -> To_client_msg.t -> unit
val send_from_all_clients : t -> To_server_msg.t -> unit
val send_to_server_from : t -> Client_name.t -> To_server_msg.t -> unit
val active_clients : t -> Client_name.t list
val close_connection_from_client : t -> Client_name.t -> unit
val drop_new_clients : t -> unit
val accept_new_clients : t -> unit
val shutdown : t -> unit Import.Deferred.t