Files

18 lines
8.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Vat (capnp-rpc-net.Capnp_rpc_net.Networking.Vat)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../odoc.support/odoc.css"/><meta name="generator" content="odoc 2.4.4"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../odoc.support/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> – <a href="../../../index.html">capnp-rpc-net</a> &#x00BB; <a href="../../index.html">Capnp_rpc_net</a> &#x00BB; <a href="../index.html">Networking</a> &#x00BB; Vat</nav><header class="odoc-preamble"><h1>Module <code><span>Networking.Vat</span></code></h1><p>A Vat is an actor in the CapTP network, composed of objects that can call each other directly.</p><p>An actor in the CapTP network. A Vat may be connected to other Vats over CapTP network connections. Typically an application will create only a single Vat. See the <code>Capnp_rpc_unix</code> module for a higher-level API.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>A local Vat.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create :
<span><span class="optlabel">?tags</span>:<span class="xref-unresolved">Logs</span>.Tag.set <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?restore</span>:<a href="../../Restorer/index.html#type-t">Restorer.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?address</span>:<a href="../argument-1-N/Address/index.html#type-t">Network.Address.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">sw</span>:<span class="xref-unresolved">Eio</span>.Switch.t <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">secret_key</span>:<span><a href="../../Auth/Secret_key/index.html#type-t">Auth.Secret_key.t</a> <span class="xref-unresolved">Stdlib</span>.Lazy.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../argument-1-N/index.html#type-t">Network.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>create ~sw ~restore ~address ~secret_key network</code> is a new Vat that uses <code>restore</code> to restore sturdy refs hosted at this vat to live capabilities for peers. The Vat will suggest that other parties connect to it using <code>address</code>. Turning off the switch will disconnect any active connections.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run_connection"><a href="#val-run_connection" class="anchor"></a><code><span><span class="keyword">val</span> run_connection :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">mode</span>:<span>[ `Accept <span>| `Connect</span> ]</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Endpoint/index.html#type-t">Endpoint.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="../CapTP/index.html#type-t">CapTP.t</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>run_connection t ~mode endpoint r</code> runs the protocol over <code>endpoint</code>, which is a connection to another vat. Once connected, <code>r conn</code> is called with the new connection. When <code>run_connection</code> returns, <code>endpoint</code> can be closed. <code>mode</code> is used if two Vats connect to each other at the same time to decide which connection to drop. Use <code>`Connect</code> if <code>t</code> initiated the new connection. If there is already a connection to <code>endpoint</code>, <code>run_connection</code> may call <code>r</code> on that instead and then return.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-public_address"><a href="#val-public_address" class="anchor"></a><code><span><span class="keyword">val</span> public_address : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../argument-1-N/Address/index.html#type-t">Network.Address.t</a> option</span></span></code></div><div class="spec-doc"><p><code>public_address t</code> is the address that peers should use when connecting to this Vat to locate and authenticate it.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sturdy_ref"><a href="#val-sturdy_ref" class="anchor"></a><code><span><span class="keyword">val</span> sturdy_ref : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Restorer/Id/index.html#type-t">Restorer.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="../../../../capnp-rpc/Capnp_rpc/Sturdy_ref/index.html#type-t">Capnp_rpc.Std.Sturdy_ref.t</a></span></span></code></div><div class="spec-doc"><p><code>sturdy_ref t service_id</code> is a sturdy ref for <code>service_id</code>, hosted at this Vat. Fails if this Vat does not accept incoming connections.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-export"><a href="#val-export" class="anchor"></a><code><span><span class="keyword">val</span> export : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="../../../../capnp-rpc/Capnp_rpc/Sturdy_ref/index.html#type-t">Capnp_rpc.Std.Sturdy_ref.t</a></span> <span class="arrow">&#45;&gt;</span></span> <span class="xref-unresolved">Uri</span>.t</span></code></div><div class="spec-doc"><p><code>export t sr</code> turns <code>sr</code> into a URI, which can be displayed and imported into another Vat.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sturdy_uri"><a href="#val-sturdy_uri" class="anchor"></a><code><span><span class="keyword">val</span> sturdy_uri : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Restorer/Id/index.html#type-t">Restorer.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span class="xref-unresolved">Uri</span>.t</span></code></div><div class="spec-doc"><p><code>sturdy_uri t id</code> is <code>sturdy_ref t id |&gt; export t</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-import"><a href="#val-import" class="anchor"></a><code><span><span class="keyword">val</span> import :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="xref-unresolved">Uri</span>.t <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span class="type-var">'a</span> <a href="../../../../capnp-rpc/Capnp_rpc/Sturdy_ref/index.html#type-t">Capnp_rpc.Std.Sturdy_ref.t</a></span>, <span>[&gt; <span>`Msg of string</span> ]</span>)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p><code>import t uri</code> parses <code>uri</code> as a &quot;capnp://&quot; URI.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-import_exn"><a href="#val-import_exn" class="anchor"></a><code><span><span class="keyword">val</span> import_exn : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="xref-unresolved">Uri</span>.t <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="../../../../capnp-rpc/Capnp_rpc/Sturdy_ref/index.html#type-t">Capnp_rpc.Std.Sturdy_ref.t</a></span></span></code></div><div class="spec-doc"><p><code>import_exn</code> is a wrapper for <code>import</code> that raises an exception if it fails.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dump"><a href="#val-dump" class="anchor"></a><code><span><span class="keyword">val</span> dump : <span><a href="#type-t">t</a> <span class="xref-unresolved">Fmt</span>.t</span></span></code></div></div></div></body></html>