nanoev/nanoev-picos/Nanoev_picos/Net_server/index.html
2025-05-05 14:16:16 +00:00

17 lines
6.7 KiB
HTML
Raw 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>Net_server (nanoev-picos.Nanoev_picos.Net_server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.0.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../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">Index</a> &#x00BB; <a href="../../index.html">nanoev-picos</a> &#x00BB; <a href="../index.html">Nanoev_picos</a> &#x00BB; Net_server</nav><header class="odoc-preamble"><h1>Module <code><span>Nanoev_picos.Net_server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-client_handler"><a href="#type-client_handler" class="anchor"></a><code><span><span class="keyword">type</span> client_handler</span><span> = <span><a href="../../../ocaml/Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../IO_in/class-type-t/index.html">IO_in.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../IO_out/class-type-t/index.html">IO_out.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><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><div class="odoc-spec"><div class="spec value anchored" id="val-join"><a href="#val-join" class="anchor"></a><code><span><span class="keyword">val</span> join : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Wait for server to shutdown</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Ask the server to stop</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-running"><a href="#val-running" class="anchor"></a><code><span><span class="keyword">val</span> running : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_connections"><a href="#val-max_connections" class="anchor"></a><code><span><span class="keyword">val</span> max_connections : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-n_active_connections"><a href="#val-n_active_connections" class="anchor"></a><code><span><span class="keyword">val</span> n_active_connections : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-establish"><a href="#val-establish" class="anchor"></a><code><span><span class="keyword">val</span> establish :
<span><span class="optlabel">?backlog</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?max_connections</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?exn_handler</span>:<span>(<span>exn <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../ocaml/Stdlib/Printexc/index.html#type-raw_backtrace">Stdlib.Printexc.raw_backtrace</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">spawn</span>:<span>(<span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../../../picos/Picos/Computation/index.html#type-t">Picos.Computation.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">client_handler</span>:<a href="#type-client_handler">client_handler</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../ocaml/Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span>
<a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create and start a new server on the given socket address.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">spawn</span> <p>used to spawn a new computation per client</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">client_handler</span> <p>the logic for talking to a client, will run in its own computation</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">backlog</span> <p>number of connections waiting in the listening socket</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">max_connections</span> <p>max number of simultaneous connections</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_"><a href="#val-with_" class="anchor"></a><code><span><span class="keyword">val</span> with_ :
<span><span class="optlabel">?backlog</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?max_connections</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?exn_handler</span>:<span>(<span>exn <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../ocaml/Stdlib/Printexc/index.html#type-raw_backtrace">Stdlib.Printexc.raw_backtrace</a> <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">spawn</span>:<span>(<span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../../../picos/Picos/Computation/index.html#type-t">Picos.Computation.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">client_handler</span>:<a href="#type-client_handler">client_handler</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../ocaml/Unix/index.html#type-sockaddr">Unix.sockaddr</a> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'a</span></span></code></div></div></div></body></html>