<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>Rpc.Connection</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> create :<br> ?implementations:<span class="keywordsign">'</span>s <span class="constructor">Implementations</span>.t <span class="keywordsign">-></span><br> connection_state:<span class="keywordsign">'</span>s <span class="keywordsign">-></span><br> ?max_message_size:int <span class="keywordsign">-></span><br> <span class="constructor">Import</span>.<span class="constructor">Reader</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Import</span>.<span class="constructor">Writer</span>.t <span class="keywordsign">-></span><br> (t, <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t) <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Result</span>.t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> close : t <span class="keywordsign">-></span> unit <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> close_finished : t <span class="keywordsign">-></span> unit <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> is_closed : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> bytes_to_write : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> with_close :<br> ?implementations:<span class="keywordsign">'</span>s <span class="constructor">Implementations</span>.t <span class="keywordsign">-></span><br> connection_state:<span class="keywordsign">'</span>s <span class="keywordsign">-></span><br> <span class="constructor">Import</span>.<span class="constructor">Reader</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Import</span>.<span class="constructor">Writer</span>.t <span class="keywordsign">-></span><br> dispatch_queries:(t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t) <span class="keywordsign">-></span><br> on_handshake_error:[ <span class="keywordsign">`</span><span class="constructor">Call</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Raise</span> ] <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> server_with_close :<br> <span class="constructor">Import</span>.<span class="constructor">Reader</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Import</span>.<span class="constructor">Writer</span>.t <span class="keywordsign">-></span><br> implementations:<span class="keywordsign">'</span>s <span class="constructor">Implementations</span>.t <span class="keywordsign">-></span><br> connection_state:<span class="keywordsign">'</span>s <span class="keywordsign">-></span><br> on_handshake_error:[ <span class="keywordsign">`</span><span class="constructor">Call</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t <span class="keywordsign">-></span> unit <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Ignore</span><br> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Raise</span> ] <span class="keywordsign">-></span><br> unit <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> serve :<br> implementations:<span class="keywordsign">'</span>s <span class="constructor">Implementations</span>.t <span class="keywordsign">-></span><br> initial_connection_state:(([< <span class="constructor">Import</span>.<span class="constructor">Socket</span>.<span class="constructor">Address</span>.t ] <span class="keyword">as</span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>s) <span class="keywordsign">-></span><br> where_to_listen:(<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>listening_on) <span class="constructor">Tcp</span>.<span class="constructor">Where_to_listen</span>.t <span class="keywordsign">-></span><br> ?auth:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span><br> ?on_handshake_error:[ <span class="keywordsign">`</span><span class="constructor">Call</span> <span class="keyword">of</span> <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t <span class="keywordsign">-></span> unit <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Ignore</span> <span class="keywordsign">|</span> <span class="keywordsign">`</span><span class="constructor">Raise</span> ] <span class="keywordsign">-></span><br> unit <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>listening_on) <span class="constructor">Tcp</span>.<span class="constructor">Server</span>.t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">module</span> <span class="constructor">Client_implementations</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>s t = {<br> connection_state : <span class="keywordsign">'</span>s;<br> implementations : <span class="keywordsign">'</span>s <span class="constructor">Implementations</span>.t;<br> }<br> <span class="keyword">val</span> null : unit <span class="keywordsign">-></span> unit t<br> <span class="keyword">end</span><br> <span class="keyword">val</span> client :<br> host:string <span class="keywordsign">-></span><br> port:int <span class="keywordsign">-></span><br> ?implementations:<span class="keywordsign">'</span>a <span class="constructor">Client_implementations</span>.t <span class="keywordsign">-></span><br> unit <span class="keywordsign">-></span> (t, <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t) <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Result</span>.t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">val</span> with_client :<br> host:string <span class="keywordsign">-></span><br> port:int <span class="keywordsign">-></span><br> ?implementations:<span class="keywordsign">'</span>b <span class="constructor">Client_implementations</span>.t <span class="keywordsign">-></span><br> (t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t) <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a, <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Exn</span>.t) <span class="constructor">Core</span>.<span class="constructor">Std</span>.<span class="constructor">Result</span>.t <span class="constructor">Import</span>.<span class="constructor">Deferred</span>.t<br> <span class="keyword">end</span></code></body></html>