<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Command" rel="Chapter" href="Command.html"> <link title="File_tail" rel="Chapter" href="File_tail.html"> <link title="File_writer" rel="Chapter" href="File_writer.html"> <link title="Import" rel="Chapter" href="Import.html"> <link title="Lock_file" rel="Chapter" href="Lock_file.html"> <link title="Log" rel="Chapter" href="Log.html"> <link title="Persistent_singleton" rel="Chapter" href="Persistent_singleton.html"> <link title="Rpc" rel="Chapter" href="Rpc.html"> <link title="Rpc_intf" rel="Chapter" href="Rpc_intf.html"> <link title="Std" rel="Chapter" href="Std.html"> <link title="Tcp" rel="Chapter" href="Tcp.html"> <link title="Tcp_file" rel="Chapter" href="Tcp_file.html"> <link title="Typed_tcp" rel="Chapter" href="Typed_tcp.html"> <link title="Typed_tcp_intf" rel="Chapter" href="Typed_tcp_intf.html"> <link title="Unpack_sequence" rel="Chapter" href="Unpack_sequence.html"> <link title="User_and_group" rel="Chapter" href="User_and_group.html"> <link title="Versioned_rpc" rel="Chapter" href="Versioned_rpc.html"> <link title="Versioned_typed_tcp" rel="Chapter" href="Versioned_typed_tcp.html"> <link title="Weak_hashtbl" rel="Chapter" href="Weak_hashtbl.html"><title>Typed_tcp.Make</title> </head> <body> <code class="code"><span class="keyword">functor</span> (<span class="constructor">Arg</span> : <span class="constructor">Arg</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Client_message</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Arg</span>.<span class="constructor">Client_message</span>.t<br> <span class="keyword">val</span> t_of_sexp : <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> sexp_of_t : t <span class="keywordsign">-></span> <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Server_message</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">Arg</span>.<span class="constructor">Server_message</span>.t<br> <span class="keyword">val</span> t_of_sexp : <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> sexp_of_t : t <span class="keywordsign">-></span> <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Client_id</span> : <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Unique_id</span><br> <span class="keyword">module</span> <span class="constructor">Server_read_result</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t =<br> <span class="constructor">Connect</span> <span class="keyword">of</span> <span class="constructor">Client_id</span>.t<br> <span class="keywordsign">|</span> <span class="constructor">Disconnect</span> <span class="keyword">of</span> <span class="constructor">Client_id</span>.t * <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Sexp</span>.t<br> <span class="keywordsign">|</span> <span class="constructor">Denied_access</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="constructor">Data</span> <span class="keyword">of</span> <span class="constructor">Client_id</span>.t * <span class="constructor">Client_message</span>.t<br> <span class="keyword">val</span> t_of_sexp : <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> sexp_of_t : t <span class="keywordsign">-></span> <span class="constructor">Sexplib</span>.<span class="constructor">Sexp</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create :<br> ?max_pending_connections:int <span class="keywordsign">-></span><br> ?verbose:bool <span class="keywordsign">-></span><br> ?log_disconnects:bool <span class="keywordsign">-></span><br> ?buffer_age_limit:[ <span class="keywordsign">`</span><span class="constructor">At_most</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Time</span>.<span class="constructor">Span</span>.t <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Unlimited</span> ] <span class="keywordsign">-></span><br> port:int <span class="keywordsign">-></span><br> auth:(<span class="constructor">Import</span>.<span class="constructor">Unix</span>.<span class="constructor">Inet_addr</span>.t <span class="keywordsign">-></span><br> int <span class="keywordsign">-></span> [ <span class="keywordsign">`</span><span class="constructor">Allow</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Deny</span> <span class="keyword">of</span> string option ] <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t) <span class="keywordsign">-></span><br> unit <span class="keywordsign">-></span> t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> listen : t <span class="keywordsign">-></span> <span class="constructor">Server_read_result</span>.t <span class="constructor">Import</span>.<span class="constructor">Pipe</span>.<span class="constructor">Reader</span>.t<br> <span class="keyword">val</span> listen_ignore_errors :<br> t <span class="keywordsign">-></span> (<span class="constructor">Client_id</span>.t * <span class="constructor">Client_message</span>.t) <span class="constructor">Import</span>.<span class="constructor">Pipe</span>.<span class="constructor">Reader</span>.t<br> <span class="keyword">val</span> close : t <span class="keywordsign">-></span> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> flushed_time :<br> t <span class="keywordsign">-></span><br> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span><br> [ <span class="keywordsign">`</span><span class="constructor">Client_not_found</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Flushed</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Time</span>.t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t ]<br> <span class="keyword">val</span> has_client_id : t <span class="keywordsign">-></span> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> send :<br> t <span class="keywordsign">-></span><br> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Server_message</span>.t <span class="keywordsign">-></span><br> [ <span class="keywordsign">`</span><span class="constructor">Drop</span> <span class="keyword">of</span> exn <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Sent</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Time</span>.t ] <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> send_ignore_errors : t <span class="keywordsign">-></span> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span> <span class="constructor">Server_message</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> send_to_all : t <span class="keywordsign">-></span> <span class="constructor">Server_message</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> client_addr_port :<br> t <span class="keywordsign">-></span> <span class="constructor">Client_id</span>.t <span class="keywordsign">-></span> (<span class="constructor">Import</span>.<span class="constructor">Unix</span>.<span class="constructor">Inet_addr</span>.t * int) option<br> <span class="keyword">end</span></code></body></html>