<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <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 rel="Up" href="Versioned_rpc.Caller_converts.Pipe_rpc.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>Versioned_rpc.Caller_converts.Pipe_rpc.Make</title> </head> <body> <div class="navbar"> <a class="up" href="Versioned_rpc.Caller_converts.Pipe_rpc.html" title="Versioned_rpc.Caller_converts.Pipe_rpc">Up</a> </div> <h1>Functor <a href="type_Versioned_rpc.Caller_converts.Pipe_rpc.Make.html">Versioned_rpc.Caller_converts.Pipe_rpc.Make</a></h1> <pre><span class="keyword">module</span> Make: <div class="sig_block"><code class="code">functor (</code><code class="code">Model</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"> <pre><span id="VALname"><span class="keyword">val</span> name</span> : <code class="type">string</code></pre> <pre><span id="TYPEquery"><span class="keyword">type</span> <code class="type"></code>query</span> </pre> <pre><span id="TYPEresponse"><span class="keyword">type</span> <code class="type"></code>response</span> </pre> <pre><span id="TYPEerror"><span class="keyword">type</span> <code class="type"></code>error</span> </pre> </div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Versioned_rpc.Caller_converts.Pipe_rpc.Make.html">..</a> <code class="code">end</code></div></pre><div class="info module top"> Given a model of the types involved in a family of Pipe_RPCs, this functor provides a single Pipe_RPC versioned dispatch function <code class="code">dispatch_multi</code> in terms of that model and a mechanism for registering the individual versions that <code class="code">dispatch_multi</code> knows about. Registration requires knowing how to get into and out of the model. <pre class="verbatim"> ,-->-- Q1 --> R1 -->-. E1 -->-. / \ \ Q --->-- Q2 --> R2 -->-- R E2 -->-- E \ / / `-->-- Q3 --> R3 -->-' E3 -->-' </pre><br> </div> <table border="0" cellpadding="3" width="100%"> <tr> <td align="left" valign="top" width="1%%"><b>Parameters: </b></td> <td> <table class="paramstable"> <tr> <td align="center" valign="top" width="15%"> <code>Model</code></td> <td align="center" valign="top">:</td> <td><code class="type">sig val name : string (* the name of the Rpc's being unified in the model *) type query type response type error end</code> </table> </td> </tr> </table> <hr width="100%"> <pre><span class="keyword">module</span> <a href="Versioned_rpc.Caller_converts.Pipe_rpc.Make.Register.html">Register</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">Version_i</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"> <pre><span id="VALversion"><span class="keyword">val</span> version</span> : <code class="type">int</code></pre> <pre><span id="TYPEquery"><span class="keyword">type</span> <code class="type"></code>query</span> </pre> <pre><span id="TYPEresponse"><span class="keyword">type</span> <code class="type"></code>response</span> </pre> <pre><span id="TYPEerror"><span class="keyword">type</span> <code class="type"></code>error</span> </pre> <pre><span id="VALquery_of_model"><span class="keyword">val</span> query_of_model</span> : <code class="type">Model.query -> query</code></pre> <pre><span id="VALmodel_of_response"><span class="keyword">val</span> model_of_response</span> : <code class="type">response -><br> Model.response</code></pre> <pre><span id="VALmodel_of_error"><span class="keyword">val</span> model_of_error</span> : <code class="type">error -> Model.error</code></pre> <pre><span id="VALbin_query"><span class="keyword">val</span> bin_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Type_class.t</code></pre> <pre><span id="VALbin_read_query"><span class="keyword">val</span> bin_read_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Read_ml.reader</code></pre> <pre><span id="VALbin_read_query_"><span class="keyword">val</span> bin_read_query_</span> : <code class="type">query<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_read_query__"><span class="keyword">val</span> bin_read_query__</span> : <code class="type">(int -> query)<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_reader_query"><span class="keyword">val</span> bin_reader_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Type_class.reader</code></pre> <pre><span id="VALbin_size_query"><span class="keyword">val</span> bin_size_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Size.sizer</code></pre> <pre><span id="VALbin_write_query"><span class="keyword">val</span> bin_write_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Write_ml.writer</code></pre> <pre><span id="VALbin_write_query_"><span class="keyword">val</span> bin_write_query_</span> : <code class="type">query<br> Core.Std.Bin_prot.Unsafe_write_c.writer</code></pre> <pre><span id="VALbin_writer_query"><span class="keyword">val</span> bin_writer_query</span> : <code class="type">query<br> Core.Std.Bin_prot.Type_class.writer</code></pre> <pre><span id="VALbin_response"><span class="keyword">val</span> bin_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Type_class.t</code></pre> <pre><span id="VALbin_read_response"><span class="keyword">val</span> bin_read_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Read_ml.reader</code></pre> <pre><span id="VALbin_read_response_"><span class="keyword">val</span> bin_read_response_</span> : <code class="type">response<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_read_response__"><span class="keyword">val</span> bin_read_response__</span> : <code class="type">(int -> response)<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_reader_response"><span class="keyword">val</span> bin_reader_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Type_class.reader</code></pre> <pre><span id="VALbin_size_response"><span class="keyword">val</span> bin_size_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Size.sizer</code></pre> <pre><span id="VALbin_write_response"><span class="keyword">val</span> bin_write_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Write_ml.writer</code></pre> <pre><span id="VALbin_write_response_"><span class="keyword">val</span> bin_write_response_</span> : <code class="type">response<br> Core.Std.Bin_prot.Unsafe_write_c.writer</code></pre> <pre><span id="VALbin_writer_response"><span class="keyword">val</span> bin_writer_response</span> : <code class="type">response<br> Core.Std.Bin_prot.Type_class.writer</code></pre> <pre><span id="VALbin_error"><span class="keyword">val</span> bin_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Type_class.t</code></pre> <pre><span id="VALbin_read_error"><span class="keyword">val</span> bin_read_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Read_ml.reader</code></pre> <pre><span id="VALbin_read_error_"><span class="keyword">val</span> bin_read_error_</span> : <code class="type">error<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_read_error__"><span class="keyword">val</span> bin_read_error__</span> : <code class="type">(int -> error)<br> Core.Std.Bin_prot.Unsafe_read_c.reader</code></pre> <pre><span id="VALbin_reader_error"><span class="keyword">val</span> bin_reader_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Type_class.reader</code></pre> <pre><span id="VALbin_size_error"><span class="keyword">val</span> bin_size_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Size.sizer</code></pre> <pre><span id="VALbin_write_error"><span class="keyword">val</span> bin_write_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Write_ml.writer</code></pre> <pre><span id="VALbin_write_error_"><span class="keyword">val</span> bin_write_error_</span> : <code class="type">error<br> Core.Std.Bin_prot.Unsafe_write_c.writer</code></pre> <pre><span id="VALbin_writer_error"><span class="keyword">val</span> bin_writer_error</span> : <code class="type">error<br> Core.Std.Bin_prot.Type_class.writer</code></pre></div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Versioned_rpc.Caller_converts.Pipe_rpc.Make.Register.html">..</a> <code class="code">end</code></div></pre><div class="info"> add a new version to the set of versions available via <code class="code">dispatch_multi</code>. </div> <pre><span class="keyword">include</span> <a href="Versioned_rpc.Caller_converts.Pipe_rpc.S.html">Versioned_rpc.Caller_converts.Pipe_rpc.S</a></pre> </body></html>