Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > c7b8d5922a45aeb64a36e62c8024cf09 > files > 55

ocaml-async_extra-devel-109.24.00-2.mga4.x86_64.rpm

<!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="previous" href="Persistent_singleton.html">
<link rel="next" href="Rpc_intf.html">
<link rel="Up" 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</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Persistent_singleton.html" title="Persistent_singleton">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Rpc_intf.html" title="Rpc_intf">Next</a>
</div>
<h1>Module <a href="type_Rpc.html">Rpc</a></h1>

<pre><span class="keyword">module</span> Rpc: <code class="code">sig</code> <a href="Rpc.html">..</a> <code class="code">end</code></pre><div class="info module top">
A library for building asynchronous RPC-style protocols.
<p>

    The approach here is to have a separate representation of the server-side
    implementation of an RPC (An <code class="code">Implementation.t</code>) and the interface that it exports
    (either an <code class="code">Rpc.t</code>, a <code class="code">State_rpc.t</code> or a <code class="code">Pipe_rpc.t</code>, but we'll refer to them
    generically as RPC interfaces).  A server builds the <code class="code">Implementation.t</code> out of an RPC
    interface and a function for implementing the RPC, while the client dispatches a
    request using the same RPC interface.
<p>

    The <code class="code">Implementation.t</code> hides the type of the query and the response, whereas the
    <code class="code">Rpc.t</code> is polymorphic in the query and response type.  This allows you to build a
    <code class="code">Implementations.t</code> out of a list of <code class="code">Implementation.t</code>s.
<p>

    Each RPC also comes with a version number.  This is meant to allow support of multiple
    different versions of what is essentially the same RPC.  You can think of it as an
    extension to the name of the RPC, and in fact, each RPC is uniquely identified by its
    (name, version) pair.  RPCs with the same name but different versions should implement
    similar functionality.<br>
</div>
<hr width="100%">
<br>
A library for building asynchronous RPC-style protocols.
<p>

    The approach here is to have a separate representation of the server-side
    implementation of an RPC (An <code class="code">Implementation.t</code>) and the interface that it exports
    (either an <code class="code">Rpc.t</code>, a <code class="code">State_rpc.t</code> or a <code class="code">Pipe_rpc.t</code>, but we'll refer to them
    generically as RPC interfaces).  A server builds the <code class="code">Implementation.t</code> out of an RPC
    interface and a function for implementing the RPC, while the client dispatches a
    request using the same RPC interface.
<p>

    The <code class="code">Implementation.t</code> hides the type of the query and the response, whereas the
    <code class="code">Rpc.t</code> is polymorphic in the query and response type.  This allows you to build a
    <code class="code">Implementations.t</code> out of a list of <code class="code">Implementation.t</code>s.
<p>

    Each RPC also comes with a version number.  This is meant to allow support of multiple
    different versions of what is essentially the same RPC.  You can think of it as an
    extension to the name of the RPC, and in fact, each RPC is uniquely identified by its
    (name, version) pair.  RPCs with the same name but different versions should implement
    similar functionality.<br>

<pre><span class="keyword">module</span> <a href="Rpc.Implementation.html">Implementation</a>: <code class="code">sig</code> <a href="Rpc.Implementation.html">..</a> <code class="code">end</code></pre>
<pre><span class="keyword">module</span> <a href="Rpc.Implementations.html">Implementations</a>: <code class="code">sig</code> <a href="Rpc.Implementations.html">..</a> <code class="code">end</code></pre>
<pre><span class="keyword">module type</span> <a href="Rpc.Connection.html">Connection</a> = <code class="type">Connection</code><code class="type">  with module Implementations := Implementations</code></pre>
<pre><span class="keyword">module</span> <a href="Rpc.Connection.html">Connection</a>: <code class="type"><a href="Rpc.Connection.html">Connection</a></code><code class="type"> </code></pre>
<pre><span class="keyword">module</span> <a href="Rpc.Rpc.html">Rpc</a>: <code class="code">sig</code> <a href="Rpc.Rpc.html">..</a> <code class="code">end</code></pre>
<pre><span class="keyword">module</span> <a href="Rpc.Pipe_rpc.html">Pipe_rpc</a>: <code class="code">sig</code> <a href="Rpc.Pipe_rpc.html">..</a> <code class="code">end</code></pre>
<pre><span class="keyword">module</span> <a href="Rpc.State_rpc.html">State_rpc</a>: <code class="code">sig</code> <a href="Rpc.State_rpc.html">..</a> <code class="code">end</code></pre><div class="info">
A state rpc is an easy way for two processes to synchronize a data structure by
    sending updates over the wire.
</div>
</body></html>