blob: 3f9f23de96752ece5258fa7379e46378284a19f3 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.11) on Mon Jun 14 16:37:38 EDT 2021 -->
<title>HttpInput (Jetty :: Project 9.4.42.v20210604 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-06-14">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HttpInput (Jetty :: Project 9.4.42.v20210604 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpInput.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server</a></div>
<h2 title="Class HttpInput" class="title">Class HttpInput</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>java.io.InputStream</li>
<li>
<ul class="inheritance">
<li>javax.servlet.ServletInputStream</li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.server.HttpInput</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.io.Closeable</code>, <code>java.lang.AutoCloseable</code>, <code>java.lang.Runnable</code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="HttpInputOverHTTP.html" title="class in org.eclipse.jetty.server">HttpInputOverHTTP</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">HttpInput</span>
extends javax.servlet.ServletInputStream
implements java.lang.Runnable</pre>
<div class="block"><a href="HttpInput.html" title="class in org.eclipse.jetty.server"><code>HttpInput</code></a> provides an implementation of <code>ServletInputStream</code> for <a href="HttpChannel.html" title="class in org.eclipse.jetty.server"><code>HttpChannel</code></a>.
<p>
Content may arrive in patterns such as [content(), content(), messageComplete()]
so that this class maintains two states: the content state that tells
whether there is content to consume and the EOF state that tells whether an EOF has arrived.
Only once the content has been consumed the content state is moved to the EOF state.
</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.ChainedInterceptor.html" title="class in org.eclipse.jetty.server">HttpInput.ChainedInterceptor</a></span></code></th>
<td class="colLast">
<div class="block">An <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a> that chains two other <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>s together.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.EofContent.html" title="class in org.eclipse.jetty.server">HttpInput.EofContent</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.EOFState.html" title="class in org.eclipse.jetty.server">HttpInput.EOFState</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.ErrorState.html" title="class in org.eclipse.jetty.server">HttpInput.ErrorState</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a></span></code></th>
<td class="colLast">
<div class="block">An interceptor for HTTP Request input.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.SentinelContent.html" title="class in org.eclipse.jetty.server">HttpInput.SentinelContent</a></span></code></th>
<td class="colLast">
<div class="block">A Sentinel Content, which has zero length content but
indicates some other event in the input stream (eg EOF)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AEOF">AEOF</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ASYNC">ASYNC</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EARLY_EOF">EARLY_EOF</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EOF">EOF</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STREAM">STREAM</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.jetty.server.HttpChannelState)">HttpInput</a></span>&#8203;(<a href="HttpChannelState.html" title="class in org.eclipse.jetty.server">HttpChannelState</a>&nbsp;state)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addContent(org.eclipse.jetty.server.HttpInput.Content)">addContent</a></span>&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content)</code></th>
<td class="colLast">
<div class="block">Adds some content to this input stream.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">addInterceptor</a></span>&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</code></th>
<td class="colLast">
<div class="block">Set the <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>, using a <a href="HttpInput.ChainedInterceptor.html" title="class in org.eclipse.jetty.server"><code>HttpInput.ChainedInterceptor</code></a> if
an <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a> is already set.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncReadProduce()">asyncReadProduce</a></span>()</code></th>
<td class="colLast">
<div class="block">Called by channel when asynchronous IO needs to produce more content</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#available()">available</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#blockForContent()">blockForContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Blocks until some content or some end-of-file event arrives.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#consumeAll()">consumeAll</a></span>()</code></th>
<td class="colLast">
<div class="block">Consume all available content without blocking.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#earlyEOF()">earlyEOF</a></span>()</code></th>
<td class="colLast">
<div class="block">This method should be called to signal that an EOF has been detected before all the expected content arrived.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#eof()">eof</a></span>()</code></th>
<td class="colLast">
<div class="block">This method should be called to signal that all the expected content arrived.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failed(java.lang.Throwable)">failed</a></span>&#8203;(java.lang.Throwable&nbsp;x)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(org.eclipse.jetty.server.HttpInput.Content,byte%5B%5D,int,int)">get</a></span>&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content,
byte[]&nbsp;buffer,
int&nbsp;offset,
int&nbsp;length)</code></th>
<td class="colLast">
<div class="block">Copies the given content into the given byte buffer.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentConsumed()">getContentConsumed</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContentReceived()">getContentReceived</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected <a href="HttpChannelState.html" title="class in org.eclipse.jetty.server">HttpChannelState</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHttpChannelState()">getHttpChannelState</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInterceptor()">getInterceptor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasContent()">hasContent</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isAsync()">isAsync</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isError()">isError</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFinished()">isFinished</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReady()">isReady</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextContent()">nextContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the next content from the inputQ, calling <a href="#produceContent()"><code>produceContent()</code></a> if need be.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextInterceptedContent()">nextInterceptedContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Poll the inputQ for Content or EOF.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected <a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#nextNonSentinelContent()">nextNonSentinelContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Poll the inputQ for Content.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onIdleTimeout(java.lang.Throwable)">onIdleTimeout</a></span>&#8203;(java.lang.Throwable&nbsp;x)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#produceContent()">produceContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Called when derived implementations should attempt to produce more Content and add it via <a href="#addContent(org.eclipse.jetty.server.HttpInput.Content)"><code>addContent(Content)</code></a>.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#produceNextContent()">produceNextContent</a></span>()</code></th>
<td class="colLast">
<div class="block">Get the next readable from the inputQ, calling <a href="#produceContent()"><code>produceContent()</code></a> if need be.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read()">read</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#read(byte%5B%5D,int,int)">read</a></span>&#8203;(byte[]&nbsp;b,
int&nbsp;off,
int&nbsp;len)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#recycle()">recycle</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run()">run</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">setInterceptor</a></span>&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</code></th>
<td class="colLast">
<div class="block">Set the interceptor.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setReadListener(javax.servlet.ReadListener)">setReadListener</a></span>&#8203;(javax.servlet.ReadListener&nbsp;readListener)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unblock()">unblock</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wake()">wake</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.javax.servlet.ServletInputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;javax.servlet.ServletInputStream</h3>
<code>readLine</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.io.InputStream">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.io.InputStream</h3>
<code>close, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="STREAM">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STREAM</h4>
<pre>protected static final&nbsp;<a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a> STREAM</pre>
</li>
</ul>
<a id="ASYNC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ASYNC</h4>
<pre>protected static final&nbsp;<a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a> ASYNC</pre>
</li>
</ul>
<a id="EARLY_EOF">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EARLY_EOF</h4>
<pre>protected static final&nbsp;<a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a> EARLY_EOF</pre>
</li>
</ul>
<a id="EOF">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EOF</h4>
<pre>protected static final&nbsp;<a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a> EOF</pre>
</li>
</ul>
<a id="AEOF">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AEOF</h4>
<pre>protected static final&nbsp;<a href="HttpInput.State.html" title="class in org.eclipse.jetty.server">HttpInput.State</a> AEOF</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.eclipse.jetty.server.HttpChannelState)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpInput</h4>
<pre>public&nbsp;HttpInput&#8203;(<a href="HttpChannelState.html" title="class in org.eclipse.jetty.server">HttpChannelState</a>&nbsp;state)</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getHttpChannelState()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHttpChannelState</h4>
<pre class="methodSignature">protected&nbsp;<a href="HttpChannelState.html" title="class in org.eclipse.jetty.server">HttpChannelState</a>&nbsp;getHttpChannelState()</pre>
</li>
</ul>
<a id="recycle()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recycle</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;recycle()</pre>
</li>
</ul>
<a id="getInterceptor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterceptor</h4>
<pre class="methodSignature">public&nbsp;<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;getInterceptor()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current Interceptor, or null if none set</dd>
</dl>
</li>
</ul>
<a id="setInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInterceptor</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setInterceptor&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</pre>
<div class="block">Set the interceptor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>interceptor</code> - The interceptor to use.</dd>
</dl>
</li>
</ul>
<a id="addInterceptor(org.eclipse.jetty.server.HttpInput.Interceptor)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addInterceptor</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;addInterceptor&#8203;(<a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server">HttpInput.Interceptor</a>&nbsp;interceptor)</pre>
<div class="block">Set the <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a>, using a <a href="HttpInput.ChainedInterceptor.html" title="class in org.eclipse.jetty.server"><code>HttpInput.ChainedInterceptor</code></a> if
an <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a> is already set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>interceptor</code> - the next <a href="HttpInput.Interceptor.html" title="interface in org.eclipse.jetty.server"><code>HttpInput.Interceptor</code></a> in a chain</dd>
</dl>
</li>
</ul>
<a id="available()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>available</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;available()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>available</code>&nbsp;in class&nbsp;<code>java.io.InputStream</code></dd>
</dl>
</li>
</ul>
<a id="wake()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wake</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;wake()</pre>
</li>
</ul>
<a id="read()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;read()
throws java.io.IOException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>read</code>&nbsp;in class&nbsp;<code>java.io.InputStream</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="read(byte[],int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>read</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;read&#8203;(byte[]&nbsp;b,
int&nbsp;off,
int&nbsp;len)
throws java.io.IOException</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>read</code>&nbsp;in class&nbsp;<code>java.io.InputStream</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="produceContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>produceContent</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;produceContent()
throws java.io.IOException</pre>
<div class="block">Called when derived implementations should attempt to produce more Content and add it via <a href="#addContent(org.eclipse.jetty.server.HttpInput.Content)"><code>addContent(Content)</code></a>. For protocols that are constantly
producing (eg HTTP2) this can be left as a noop;</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to produce content</dd>
</dl>
</li>
</ul>
<a id="asyncReadProduce()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>asyncReadProduce</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;asyncReadProduce()
throws java.io.IOException</pre>
<div class="block">Called by channel when asynchronous IO needs to produce more content</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if unable to produce content</dd>
</dl>
</li>
</ul>
<a id="nextContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextContent</h4>
<pre class="methodSignature">protected&nbsp;<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;nextContent()
throws java.io.IOException</pre>
<div class="block">Get the next content from the inputQ, calling <a href="#produceContent()"><code>produceContent()</code></a> if need be. EOF is processed and state changed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the content or null if none available.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if retrieving the content fails</dd>
</dl>
</li>
</ul>
<a id="nextNonSentinelContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextNonSentinelContent</h4>
<pre class="methodSignature">protected&nbsp;<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;nextNonSentinelContent()
throws java.io.IOException</pre>
<div class="block">Poll the inputQ for Content. Consumed buffers and <a href="HttpInput.SentinelContent.html" title="class in org.eclipse.jetty.server"><code>HttpInput.SentinelContent</code></a>s are removed and EOF state updated if need be.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Content or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="produceNextContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>produceNextContent</h4>
<pre class="methodSignature">protected&nbsp;<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;produceNextContent()
throws java.io.IOException</pre>
<div class="block">Get the next readable from the inputQ, calling <a href="#produceContent()"><code>produceContent()</code></a> if need be. EOF is NOT processed and state is not changed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the content or EOF or null if none available.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if retrieving the content fails</dd>
</dl>
</li>
</ul>
<a id="nextInterceptedContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nextInterceptedContent</h4>
<pre class="methodSignature">protected&nbsp;<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;nextInterceptedContent()
throws java.io.IOException</pre>
<div class="block">Poll the inputQ for Content or EOF. Consumed buffers and non EOF <a href="HttpInput.SentinelContent.html" title="class in org.eclipse.jetty.server"><code>HttpInput.SentinelContent</code></a>s are removed. EOF state is not updated.
Interception is done within this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Content with remaining, a <a href="HttpInput.SentinelContent.html" title="class in org.eclipse.jetty.server"><code>HttpInput.SentinelContent</code></a>, or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a id="get(org.eclipse.jetty.server.HttpInput.Content,byte[],int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre class="methodSignature">protected&nbsp;int&nbsp;get&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content,
byte[]&nbsp;buffer,
int&nbsp;offset,
int&nbsp;length)</pre>
<div class="block">Copies the given content into the given byte buffer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>content</code> - the content to copy from</dd>
<dd><code>buffer</code> - the buffer to copy into</dd>
<dd><code>offset</code> - the buffer offset to start copying from</dd>
<dd><code>length</code> - the space available in the buffer</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes actually copied</dd>
</dl>
</li>
</ul>
<a id="blockForContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>blockForContent</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;blockForContent()
throws java.io.IOException</pre>
<div class="block">Blocks until some content or some end-of-file event arrives.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if the wait is interrupted</dd>
</dl>
</li>
</ul>
<a id="addContent(org.eclipse.jetty.server.HttpInput.Content)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addContent</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;addContent&#8203;(<a href="HttpInput.Content.html" title="class in org.eclipse.jetty.server">HttpInput.Content</a>&nbsp;content)</pre>
<div class="block">Adds some content to this input stream.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>content</code> - the content to add</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if content channel woken for read</dd>
</dl>
</li>
</ul>
<a id="hasContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasContent</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;hasContent()</pre>
</li>
</ul>
<a id="unblock()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unblock</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;unblock()</pre>
</li>
</ul>
<a id="getContentConsumed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentConsumed</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getContentConsumed()</pre>
</li>
</ul>
<a id="getContentReceived()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContentReceived</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getContentReceived()</pre>
</li>
</ul>
<a id="earlyEOF()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>earlyEOF</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;earlyEOF()</pre>
<div class="block">This method should be called to signal that an EOF has been detected before all the expected content arrived.
<p>
Typically this will result in an EOFException being thrown from a subsequent read rather than a -1 return.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if content channel woken for read</dd>
</dl>
</li>
</ul>
<a id="eof()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>eof</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;eof()</pre>
<div class="block">This method should be called to signal that all the expected content arrived.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if content channel woken for read</dd>
</dl>
</li>
</ul>
<a id="consumeAll()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consumeAll</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;consumeAll()</pre>
<div class="block">Consume all available content without blocking.
Raw content is counted in the <a href="#getContentReceived()"><code>getContentReceived()</code></a> statistics, but
is not intercepted nor counted in the <a href="#getContentConsumed()"><code>getContentConsumed()</code></a> statistics</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if EOF was reached, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="isError()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isError</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isError()</pre>
</li>
</ul>
<a id="isAsync()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAsync</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isAsync()</pre>
</li>
</ul>
<a id="isFinished()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFinished</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isFinished()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isFinished</code>&nbsp;in class&nbsp;<code>javax.servlet.ServletInputStream</code></dd>
</dl>
</li>
</ul>
<a id="isReady()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReady</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isReady()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>isReady</code>&nbsp;in class&nbsp;<code>javax.servlet.ServletInputStream</code></dd>
</dl>
</li>
</ul>
<a id="setReadListener(javax.servlet.ReadListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setReadListener</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setReadListener&#8203;(javax.servlet.ReadListener&nbsp;readListener)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>setReadListener</code>&nbsp;in class&nbsp;<code>javax.servlet.ServletInputStream</code></dd>
</dl>
</li>
</ul>
<a id="onIdleTimeout(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onIdleTimeout</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;onIdleTimeout&#8203;(java.lang.Throwable&nbsp;x)</pre>
</li>
</ul>
<a id="failed(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>failed</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;failed&#8203;(java.lang.Throwable&nbsp;x)</pre>
</li>
</ul>
<a id="run()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;run()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>run</code>&nbsp;in interface&nbsp;<code>java.lang.Runnable</code></dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpInput.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>