mirror of
https://github.com/c-cube/tiny_httpd.git
synced 2025-12-06 11:15:35 -05:00
18 lines
18 KiB
HTML
18 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>In_buf (iostream.Iostream.In_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> » <a href="../index.html">Iostream</a> » In_buf</nav><header class="odoc-preamble"><h1>Module <code><span>Iostream.In_buf</span></code></h1><p>Buffered input 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>The implementation of buffered input streams.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-t_from_refill"><a href="#class-t_from_refill" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-t_from_refill/index.html">t_from_refill</a></span><span> : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A mixin to implement a buffered input by only providing a <code>refill</code> method. Add a <code>close</code> method and it's good to go.</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">?bytes</span>:bytes <span class="arrow">-></span></span>
|
||
<span><span class="optlabel">?close</span>:<span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">refill</span>:<span>(<span>bytes <span class="arrow">-></span></span> int)</span> <span class="arrow">-></span></span>
|
||
<span>unit <span class="arrow">-></span></span>
|
||
<a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Create a new buffered input stream.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">refill</span> <p>will be called to refill the content of the bytes, returning how many bytes were added (starting at offset 0).</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buf</span> <p>the underlying buffer</p></li></ul><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if the buffer's length is not at least 16.</p></li></ul></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-of_bytes"><a href="#class-of_bytes" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-of_bytes/index.html">of_bytes</a></span><span> : <span><span class="optlabel">?off</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?len</span>:int <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></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_bytes"><a href="#val-of_bytes" class="anchor"></a><code><span><span class="keyword">val</span> of_bytes : <span><span class="optlabel">?off</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?len</span>:int <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></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_string"><a href="#class-of_string" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-of_string/index.html">of_string</a></span><span> : <span><span class="optlabel">?off</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?len</span>:int <span class="arrow">-></span></span> <span>string <span class="arrow">-></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_string"><a href="#val-of_string" class="anchor"></a><code><span><span class="keyword">val</span> of_string : <span><span class="optlabel">?off</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?len</span>:int <span class="arrow">-></span></span> <span>string <span class="arrow">-></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-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">-></span></span> <span><a href="../In/class-type-t/index.html">In.t</a> <span class="arrow">-></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">-></span></span> <span><a href="../In/class-type-t/index.html">In.t</a> <span class="arrow">-></span></span> <a href="class-type-t/index.html">t</a></span></code></div></div><p>Read from the given buffer.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">off</span> <p>initial offset (default 0)</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">len</span> <p>length of the slice in the bytes. (default all available bytes from offset)</p></li></ul><div class="odoc-spec"><div class="spec class anchored" id="class-of_in_channel"><a href="#class-of_in_channel" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-of_in_channel/index.html">of_in_channel</a></span><span> : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span> <span><a href="../../../ocaml/Stdlib/index.html#type-in_channel">in_channel</a> <span class="arrow">-></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_in_channel"><a href="#val-of_in_channel" class="anchor"></a><code><span><span class="keyword">val</span> of_in_channel : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span> <span><a href="../../../ocaml/Stdlib/index.html#type-in_channel">in_channel</a> <span class="arrow">-></span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Wrap a standard input channel.</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">?bytes</span>:bytes <span class="arrow">-></span></span> <span><span class="optlabel">?mode</span>:int <span class="arrow">-></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">-></span></span> <span>string <span class="arrow">-></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-open_file"><a href="#val-open_file" class="anchor"></a><code><span><span class="keyword">val</span> open_file :
|
||
<span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span>
|
||
<span><span class="optlabel">?mode</span>:int <span class="arrow">-></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">-></span></span>
|
||
<span>string <span class="arrow">-></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-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">?bytes</span>:bytes <span class="arrow">-></span></span>
|
||
<span><span class="optlabel">?mode</span>:int <span class="arrow">-></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">-></span></span>
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fill_buf"><a href="#val-fill_buf" class="anchor"></a><code><span><span class="keyword">val</span> fill_buf : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <a href="../Slice/index.html#type-t">Slice.t</a></span></code></div><div class="spec-doc"><p><code>fill_buffer bic</code> returns a slice into <code>bic</code>'s internal buffer, and ensures it's empty only if <code>bic.ic</code> is empty.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input"><a href="#val-input" class="anchor"></a><code><span><span class="keyword">val</span> input : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>bytes <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Read into the given slice of bytes.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_in"><a href="#val-of_in" class="anchor"></a><code><span><span class="keyword">val</span> of_in : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span> <span><a href="../In/class-type-t/index.html">In.t</a> <span class="arrow">-></span></span> <a href="class-type-t/index.html">t</a></span></code></div><div class="spec-doc"><p>Make a buffered version of the input stream.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">bytes</span> <p>the buffer to use.</p></li></ul><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if the buffer's length is not at least 16.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-consume"><a href="#val-consume" class="anchor"></a><code><span><span class="keyword">val</span> consume : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>consume bic n</code> consumes <code>n</code> bytes from <code>bic</code>. Precondition: <code>n <= get_len bic</code>, ie. one cannot consume bytes that have not yet been obtained via <code>fill_buffer</code> or <code>fill_and_get</code>.</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">-></span></span> unit</span></code></div><div class="spec-doc"><p>Close the input stream.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-into_in"><a href="#val-into_in" class="anchor"></a><code><span><span class="keyword">val</span> into_in : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <a href="../In/class-type-t/index.html">In.t</a></span></code></div><div class="spec-doc"><p>Cast into a <a href="../In/class-type-t/index.html"><code>In.t</code></a>. This doesn't allocate.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input_all_into_buffer"><a href="#val-input_all_into_buffer" class="anchor"></a><code><span><span class="keyword">val</span> input_all_into_buffer : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span><a href="../../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Read the whole content into the given buffer.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input_all"><a href="#val-input_all" class="anchor"></a><code><span><span class="keyword">val</span> input_all : <span><span class="optlabel">?buf</span>:bytes <span class="arrow">-></span></span> <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>input_all ic</code> reads the whole content of <code>ic</code> into a string.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buf</span> <p>the initial buffer to use internally.</p></li></ul><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-copy_into"><a href="#val-copy_into" class="anchor"></a><code><span><span class="keyword">val</span> copy_into : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span><a href="../Out/class-type-t/index.html">Out.t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Copy the entire stream into the given output.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-skip"><a href="#val-skip" class="anchor"></a><code><span><span class="keyword">val</span> skip : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>skip ic n</code> reads and dicards the next <code>n</code> bytes in <code>ic</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input_line"><a href="#val-input_line" class="anchor"></a><code><span><span class="keyword">val</span> input_line : <span><span class="optlabel">?buffer</span>:<a href="../../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">-></span></span> <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>string option</span></span></code></div><div class="spec-doc"><p>Read a line from the input. Return <code>None</code> if the stream is empty.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">buffer</span> <p>a buffer to use to hold the line.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-input_lines"><a href="#val-input_lines" class="anchor"></a><code><span><span class="keyword">val</span> input_lines : <span><span class="optlabel">?buffer</span>:<a href="../../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">-></span></span> <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p>Read all lines from the input.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_iter"><a href="#val-to_iter" class="anchor"></a><code><span><span class="keyword">val</span> to_iter : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span><span>(<span>char <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span><span class="keyword">val</span> to_seq : <span><a href="class-type-t/index.html">t</a> <span class="arrow">-></span></span> <span>char <a href="../../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_seq"><a href="#val-of_seq" class="anchor"></a><code><span><span class="keyword">val</span> of_seq : <span><span class="optlabel">?bytes</span>:bytes <span class="arrow">-></span></span> <span><span>char <a href="../../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <span class="arrow">-></span></span> <a href="class-type-t/index.html">t</a></span></code></div></div></div></body></html>
|