tiny_httpd/iostream/Iostream/Out_buf/index.html
2024-06-18 20:31:56 +00:00

20 lines
14 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>Out_buf (iostream.Iostream.Out_buf)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><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">iostream</a> &#x00BB; <a href="../index.html">Iostream</a> &#x00BB; Out_buf</nav><header class="odoc-preamble"><h1>Module <code><span>Iostream.Out_buf</span></code></h1><p>Buffered output stream.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-t"><a href="#class-type-t" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-t/index.html">t</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>An output stream, ie. a place into which we can write bytes, with a buffer to amortize the cost of operations.</p></div></div><div class="odoc-spec"><div class="spec class-type anchored" id="class-type-t_seekable"><a href="#class-type-t_seekable" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">type</span> </span><span><a href="class-type-t_seekable/index.html">t_seekable</a></span><span> = <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></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">?flush</span>:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?close</span>:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">output_char</span>:<span>(<span>char <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">output</span>:<span>(<span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit)</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Create a new output stream from raw components.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-dummy"><a href="#class-dummy" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-dummy/index.html">dummy</a></span><span> : <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dummy"><a href="#val-dummy" class="anchor"></a><code><span><span class="keyword">val</span> dummy : <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Dummy output, drops everything written to it.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-t_from_output"><a href="#class-t_from_output" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-t_from_output/index.html">t_from_output</a></span><span> : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Make a bufferized output from a non bufferized output+close.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-bufferized"><a href="#class-bufferized" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-bufferized/index.html">bufferized</a></span><span> : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">&#45;&gt;</span></span> <span><a href="../Out/class-type-t/index.html">Out.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bufferized"><a href="#val-bufferized" class="anchor"></a><code><span><span class="keyword">val</span> bufferized : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">&#45;&gt;</span></span> <span><a href="../Out/class-type-t/index.html">Out.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-of_out_channel"><a href="#class-of_out_channel" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-of_out_channel/index.html">of_out_channel</a></span><span> : <span><span class="optlabel">?close_noerr</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../ocaml/Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t_seekable/index.html">t_seekable</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_out_channel"><a href="#val-of_out_channel" class="anchor"></a><code><span><span class="keyword">val</span> of_out_channel : <span><span class="optlabel">?close_noerr</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../ocaml/Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t_seekable/index.html">t_seekable</a></span></code></div><div class="spec-doc"><p>Wrap an out channel.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-of_buffer"><a href="#class-of_buffer" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-of_buffer/index.html">of_buffer</a></span><span> : <span><a href="../../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_buffer"><a href="#val-of_buffer" class="anchor"></a><code><span><span class="keyword">val</span> of_buffer : <span><a href="../../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p><code>of_buffer buf</code> is an output channel that writes directly into <code>buf</code>. <code>flush</code> and <code>close</code> have no effect.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-open_file"><a href="#class-open_file" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-open_file/index.html">open_file</a></span><span> : <span><span class="optlabel">?close_noerr</span>:bool <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?mode</span>:int <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?flags</span>:<span><a href="../../../ocaml/Stdlib/index.html#type-open_flag">open_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span>
<a href="class-type-t_seekable/index.html">t_seekable</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-open_file"><a href="#val-open_file" class="anchor"></a><code><span><span class="keyword">val</span> open_file :
<span><span class="optlabel">?close_noerr</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?mode</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?flags</span>:<span><a href="../../../ocaml/Stdlib/index.html#type-open_flag">open_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<a href="class-type-t_seekable/index.html">t_seekable</a></span></code></div><div class="spec-doc"><p><code>open_file file</code> creates an out stream writing into the given file.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">mode</span> <p>permissions for the file creation</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">flags</span> <p>set of unix flags to use. It must contain write permissions.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_open_file"><a href="#val-with_open_file" class="anchor"></a><code><span><span class="keyword">val</span> with_open_file :
<span><span class="optlabel">?close_noerr</span>:bool <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?mode</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="optlabel">?flags</span>:<span><a href="../../../ocaml/Stdlib/index.html#type-open_flag">open_flag</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><a href="class-type-t_seekable/index.html">t_seekable</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 class="odoc-spec"><div class="spec value anchored" id="val-output_char"><a href="#val-output_char" class="anchor"></a><code><span><span class="keyword">val</span> output_char : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>char <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Output a single char</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output"><a href="#val-output" class="anchor"></a><code><span><span class="keyword">val</span> output : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>bytes <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Write the slice of bytes.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-close"><a href="#val-close" class="anchor"></a><code><span><span class="keyword">val</span> close : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Close the stream. Idempotent.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-flush"><a href="#val-flush" class="anchor"></a><code><span><span class="keyword">val</span> flush : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Ensure the bytes written so far are indeed written to the underlying storage/network socket/… and are not just sitting in a buffer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_string"><a href="#val-output_string" class="anchor"></a><code><span><span class="keyword">val</span> output_string : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Output the whole string.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_line"><a href="#val-output_line" class="anchor"></a><code><span><span class="keyword">val</span> output_line : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Output the whole string followed by <code>'\n'</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.2</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_lines"><a href="#val-output_lines" class="anchor"></a><code><span><span class="keyword">val</span> output_lines : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span><span>string <a href="../../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Output a series of lines, each terminated by <code>'\n'</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_int"><a href="#val-output_int" class="anchor"></a><code><span><span class="keyword">val</span> output_int : <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Output an integer in decimal notation.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-tee"><a href="#val-tee" class="anchor"></a><code><span><span class="keyword">val</span> tee : <span><span><a href="class-type-t/index.html">t</a> list</span> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p><code>tee ocs</code> is an output that accepts bytes and writes them to every output in <code>ocs</code>. When closed, it closes all elements of <code>oc</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_char"><a href="#val-map_char" class="anchor"></a><code><span><span class="keyword">val</span> map_char : <span><span>(<span>char <span class="arrow">&#45;&gt;</span></span> char)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="class-type-t/index.html">t</a> <span class="arrow">&#45;&gt;</span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Transform the stream byte by byte</p></div></div></div></body></html>