Files

14 lines
14 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>C (capnp-rpc.Capnp_rpc_proto.Cap_proxy.Make.C)</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</a> &#x00BB; <a href="../../../index.html">Capnp_rpc_proto</a> &#x00BB; <a href="../../index.html">Cap_proxy</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; C</nav><header class="odoc-preamble"><h1>Parameter <code><span>Make.C</span></code></h1><p>This module defines a calling convention for invoking methods on objects. The objects could be remote, but this module doesn't define anything related to networks. These types are generated automatically from <code>WIRE</code> by <code>Core_types</code>.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-Wire"><a href="#module-Wire" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Wire/index.html">Wire</a></span><span> : <a href="../../../S/module-type-WIRE/index.html">S.WIRE</a></span></code></div><div class="spec-doc"><p>The core RPC logic can be used with different serialisation systems. The appropriate types should be provided here.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-or_error"><a href="#type-or_error" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a or_error</span></span><span> = <span><span>(<span class="type-var">'a</span>, <a href="../../../Error/index.html#type-t">Error.t</a>)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div></div><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-base_ref"><a href="#class-type-base_ref" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-base_ref/index.html">base_ref</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Common methods for <code>struct_ref</code> and <code>cap</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="class-type-base_ref/index.html">base_ref</a> <span class="xref-unresolved">Fmt</span>.t</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-inc_ref"><a href="#val-inc_ref" class="anchor"></a><code><span><span class="keyword">val</span> inc_ref : <span><a href="class-type-base_ref/index.html">base_ref</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>inc_ref x</code> increases <code>x</code>'s ref-count by one.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dec_ref"><a href="#val-dec_ref" class="anchor"></a><code><span><span class="keyword">val</span> dec_ref : <span><a href="class-type-base_ref/index.html">base_ref</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>dec_ref x</code> decreases <code>x</code>'s ref-count by one.</p></div></div><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-struct_ref"><a href="#class-type-struct_ref" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-struct_ref/index.html">struct_ref</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>The result of a call, which may not have arrived yet. It can be used to pipeline calls to capabilities that we hope will be returned in the results.</p></div></div><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-cap"><a href="#class-type-cap" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-cap/index.html">cap</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A capability reference to an object that can handle calls. We might not yet know its final location, but we may be able to pipeline messages to it anyway.</p></div></div><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-struct_resolver"><a href="#class-type-struct_resolver" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-struct_resolver/index.html">struct_resolver</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A <code>struct_resolver</code> can be used to resolve some promise.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Attachments"><a href="#module-Attachments" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Attachments/index.html">Attachments</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Request_payload"><a href="#module-Request_payload" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Request_payload/index.html">Request_payload</a></span><span> :
<a href="../../../S/module-type-PAYLOAD/index.html">S.PAYLOAD</a>
<span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-t">t</a> = <a href="Wire/Request/index.html#type-t">Wire.Request.t</a></span>
<span class="keyword">and</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-cap">cap</a> := <a href="class-type-cap/index.html">cap</a></span>
<span class="keyword">and</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-path">path</a> := <a href="Wire/Path/index.html#type-t">Wire.Path.t</a></span></span></code></div><div class="spec-doc"><p>The payload of a request message.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Response_payload"><a href="#module-Response_payload" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Response_payload/index.html">Response_payload</a></span><span> :
<a href="../../../S/module-type-PAYLOAD/index.html">S.PAYLOAD</a>
<span class="keyword">with</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-t">t</a> = <a href="Wire/Response/index.html#type-t">Wire.Response.t</a></span>
<span class="keyword">and</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-cap">cap</a> := <a href="class-type-cap/index.html">cap</a></span>
<span class="keyword">and</span> <span><span class="keyword">type</span> <a href="../../../S/module-type-PAYLOAD/index.html#type-path">path</a> := <a href="Wire/Path/index.html#type-t">Wire.Path.t</a></span></span></code></div><div class="spec-doc"><p>The payload of a response message.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-ref_counted"><a href="#class-ref_counted" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-ref_counted/index.html">ref_counted</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A mix-in to help with writing reference-counted objects. It will call <code>self#release</code> when the ref-count reaches zero.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-service"><a href="#class-service" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-service/index.html">service</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A convenience base class for creating local services. The capability is always resolved, and the default <code>release</code> method does nothing.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-null"><a href="#val-null" class="anchor"></a><code><span><span class="keyword">val</span> null : <a href="class-type-cap/index.html">cap</a></span></code></div><div class="spec-doc"><p>A (broken) capability representing a missing pointer. Any attempt to call it will return an error.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-return"><a href="#val-return" class="anchor"></a><code><span><span class="keyword">val</span> return : <span><a href="Response_payload/index.html#type-t">Response_payload.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-struct_ref/index.html">struct_ref</a></span></code></div><div class="spec-doc"><p><code>return x</code> is a resolved <code>struct_ref</code> with successful resolution <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fail"><a href="#val-fail" class="anchor"></a><code><span><span class="keyword">val</span> fail :
<span><span class="optlabel">?ty</span>:<a href="../../../Exception/index.html#type-ty">Exception.ty</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(<span class="type-var">'a</span>, <span class="xref-unresolved">Stdlib</span>.Format.formatter, unit, <a href="class-type-struct_ref/index.html">struct_ref</a>)</span> <span class="xref-unresolved">Stdlib</span>.format4</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fail fmt</code> is a <code>struct_ref</code> that is broken with the given capnp exception message.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-broken_cap"><a href="#val-broken_cap" class="anchor"></a><code><span><span class="keyword">val</span> broken_cap : <span><a href="../../../Exception/index.html#type-t">Exception.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-cap/index.html">cap</a></span></code></div><div class="spec-doc"><p><code>broken_cap ex</code> is a <code>cap</code> that is broken with the given exception.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-broken_struct"><a href="#val-broken_struct" class="anchor"></a><code><span><span class="keyword">val</span> broken_struct : <span><a href="../../../Error/index.html#type-t">Error.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-struct_ref/index.html">struct_ref</a></span></code></div><div class="spec-doc"><p><code>broken_struct err</code> is a <code>struct_ref</code> that is broken with the given error.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-resolved"><a href="#val-resolved" class="anchor"></a><code><span><span class="keyword">val</span> resolved : <span><span><a href="Response_payload/index.html#type-t">Response_payload.t</a> <a href="#type-or_error">or_error</a></span> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-struct_ref/index.html">struct_ref</a></span></code></div><div class="spec-doc"><p><code>resolved x</code> is a resolved <code>struct_ref</code> with resolution <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-resolve_payload"><a href="#val-resolve_payload" class="anchor"></a><code><span><span class="keyword">val</span> resolve_payload : <span><a href="class-type-struct_resolver/index.html">struct_resolver</a> <span class="arrow">&#45;&gt;</span></span> <span><span><a href="Response_payload/index.html#type-t">Response_payload.t</a> <a href="#type-or_error">or_error</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>resolve_payload r x</code> is <code>r#resolve (resolved x)</code>. <code>r</code> takes ownership of <code>x</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-resolve_ok"><a href="#val-resolve_ok" class="anchor"></a><code><span><span class="keyword">val</span> resolve_ok : <span><a href="class-type-struct_resolver/index.html">struct_resolver</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="Wire/Response/index.html#type-t">Wire.Response.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>resolve_ok r msg</code> is <code>resolve_payload r (Ok msg)</code>. <code>r</code> takes ownership of <code>msg</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-resolve_exn"><a href="#val-resolve_exn" class="anchor"></a><code><span><span class="keyword">val</span> resolve_exn : <span><a href="class-type-struct_resolver/index.html">struct_resolver</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../Exception/index.html#type-t">Exception.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>resolve_exn r exn</code> is <code>resolve_payload r (Error (`Exception exn))</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-when_broken"><a href="#val-when_broken" class="anchor"></a><code><span><span class="keyword">val</span> when_broken : <span><span>(<span><a href="../../../Exception/index.html#type-t">Exception.t</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="class-type-cap/index.html">cap</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>when_broken fn x</code> calls <code>fn problem</code> when <code>x</code> becomes broken. If <code>x</code> is already broken, <code>fn</code> is called immediately. If <code>x</code> can never become broken (e.g. it is a near ref), this does nothing.</p></div></div></div></body></html>