Up
Module
Repeater
(
To_server_msg
:
Datum
) (
To_client_msg
:
Datum
) (
Server_name
:
Name
) (
Client_name
:
Name
) (
Mode
:
Mode
)
Parameters
To_server_msg
:
Datum
To_client_msg
:
Datum
Server_name
:
Name
Client_name
:
Name
Mode
:
Mode
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
shutdown :
t
-> unit
Import.Deferred.t