mirror of
https://github.com/zap-proto/ocaml-rpc.git
synced 2026-11-03 13:11:00 +00:00
18 lines
8.2 KiB
HTML
18 lines
8.2 KiB
HTML
<!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> » <a href="../../index.html">Capnp_rpc_net</a> » <a href="../index.html">Networking</a> » 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">-></span></span>
|
||
<span><span class="optlabel">?restore</span>:<a href="../../Restorer/index.html#type-t">Restorer.t</a> <span class="arrow">-></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">-></span></span>
|
||
<span><span class="label">sw</span>:<span class="xref-unresolved">Eio</span>.Switch.t <span class="arrow">-></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">-></span></span>
|
||
<span><a href="../argument-1-N/index.html#type-t">Network.t</a> <span class="arrow">-></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">-></span></span>
|
||
<span><span class="label">mode</span>:<span>[ `Accept <span>| `Connect</span> ]</span> <span class="arrow">-></span></span>
|
||
<span><a href="../../Endpoint/index.html#type-t">Endpoint.t</a> <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="../CapTP/index.html#type-t">CapTP.t</a> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></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">-></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">-></span></span> <span><a href="../../Restorer/Id/index.html#type-t">Restorer.Id.t</a> <span class="arrow">-></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">-></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">-></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">-></span></span> <span><a href="../../Restorer/Id/index.html#type-t">Restorer.Id.t</a> <span class="arrow">-></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 |> 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">-></span></span>
|
||
<span><span class="xref-unresolved">Uri</span>.t <span class="arrow">-></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>[> <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 "capnp://" 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">-></span></span> <span><span class="xref-unresolved">Uri</span>.t <span class="arrow">-></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>
|