docs(javadoc): publish 2.0.0

This commit is contained in:
github-actions[bot]
2026-05-12 14:36:56 +00:00
parent 26d6386427
commit f6b0831121
939 changed files with 105195 additions and 1539 deletions
@@ -1,8 +1,8 @@
<!DOCTYPE HTML>
<html lang>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Tue May 12 13:57:37 UTC 2026 -->
<title>RequestParser (flash-parent 2.0.0 API)</title>
<!-- Generated by javadoc (21) on Tue May 12 14:36:52 UTC 2026 -->
<title>RequestParser (flash-parent 2.1.0-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2026-05-12">
@@ -93,9 +93,25 @@ loadScripts(document, 'script');</script>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">RequestParser</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">One instance per connection, the buffer is allocated once and reused across keep-alive
requests. Grows on demand (doubling, up to <code>maxHeaderBufferSize</code>). Zero String
allocations during parsing; paths, headers and protocol are exposed as <code>ByteView</code> slices.</div>
<div class="block">One instance per connection. The buffer is allocated once and reused across
keep-alive requests. Grows on demand (doubling, up to <code>maxHeaderBufferSize</code>).
<h3 id="zero-allocation-design-heading">Zero-allocation design</h3>
<ul>
<li>No <a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> allocations during parsing: paths, headers and
protocol are exposed as <code>ByteView</code> slices
into the shared buffer.</li>
<li><code>headerMap</code> is reset in-place per request — single allocation
for the lifetime of the connection.</li>
<li>Pipelining / keep-alive leftover bytes are tracked via <code>bufBase</code>
and <code>bufLen</code> — no copy between requests on the common path.</li>
</ul>
<h3 id="state-invariant-heading">State invariant</h3>
<code>bufBase</code> and <code>bufLen</code> always reflect unconsumed bytes that belong
to the <em>next</em> request. They are snapshotted at the top of <a href="#parse(java.io.InputStream)"><code>parse(java.io.InputStream)</code></a>
and reset to <code>0/0</code> before any work begins, so an exception thrown mid-parse
leaves the fields clean rather than pointing at stale data from a previous request.</div>
</section>
<section class="summary">
<ul class="summary-list">
@@ -130,7 +146,9 @@ loadScripts(document, 'script');</script>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="models/Request.html" title="class in dev.relism.flash.models">Request</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#parse(java.io.InputStream)" class="member-name-link">parse</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io" class="external-link">InputStream</a>&nbsp;in)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Parses the next HTTP request from <code>in</code>.</div>
</div>
</div>
</div>
</div>
@@ -180,9 +198,18 @@ loadScripts(document, 'script');</script>
<h3>parse</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="models/Request.html" title="class in dev.relism.flash.models">Request</a></span>&nbsp;<span class="element-name">parse</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/InputStream.html" title="class or interface in java.io" class="external-link">InputStream</a>&nbsp;in)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Parses the next HTTP request from <code>in</code>.
<p><b>Exception safety:</b> <code>bufBase</code> and <code>bufLen</code> are reset
to <code>0</code> before any parsing work begins. If an exception is thrown,
the connection will be closed by the caller, so stale leftover state is
never a problem — but the reset ensures correctness in test scenarios where
the same parser instance is reused after an error.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the parsed <a href="models/Request.html" title="class in dev.relism.flash.models"><code>Request</code></a>, or <code>null</code> on clean EOF.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code> - on malformed headers or I/O failure.</dd>
</dl>
</section>
</li>