blob: ad2843169014ecdd461287b9a9604404a28e9c32 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Wed Jun 07 15:10:53 EDT 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HttpSender (Jetty :: Project 9.2.22.v20170606 API)</title>
<meta name="date" content="2017-06-07">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HttpSender (Jetty :: Project 9.2.22.v20170606 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpSender.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 class="aboutLanguage"><em><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1149868-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/jetty/client/HttpResponseException.html" title="class in org.eclipse.jetty.client"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/jetty/client/LeakTrackingConnectionPool.html" title="class in org.eclipse.jetty.client"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/jetty/client/HttpSender.html" target="_top">Frames</a></li>
<li><a href="HttpSender.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.jetty.client</div>
<h2 title="Class HttpSender" class="title">Class HttpSender</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.client.HttpSender</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/7/docs/api/java/util/EventListener.html?is-external=true" title="class or interface in java.util">EventListener</a>, <a href="../../../../org/eclipse/jetty/client/AsyncContentProvider.Listener.html" title="interface in org.eclipse.jetty.client">AsyncContentProvider.Listener</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/jetty/fcgi/client/http/HttpSenderOverFCGI.html" title="class in org.eclipse.jetty.fcgi.client.http">HttpSenderOverFCGI</a>, <a href="../../../../org/eclipse/jetty/client/http/HttpSenderOverHTTP.html" title="class in org.eclipse.jetty.client.http">HttpSenderOverHTTP</a>, <a href="../../../../org/eclipse/jetty/spdy/client/http/HttpSenderOverSPDY.html" title="class in org.eclipse.jetty.spdy.client.http">HttpSenderOverSPDY</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">HttpSender</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../org/eclipse/jetty/client/AsyncContentProvider.Listener.html" title="interface in org.eclipse.jetty.client">AsyncContentProvider.Listener</a></pre>
<div class="block"><a href="../../../../org/eclipse/jetty/client/HttpSender.html" title="class in org.eclipse.jetty.client"><code>HttpSender</code></a> abstracts the algorithm to send HTTP requests, so that subclasses only implement
the transport-specific code to send requests over the wire, implementing
<a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendHeaders(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)"><code>sendHeaders(HttpExchange, HttpContent, Callback)</code></a> and
<a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendContent(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)"><code>sendContent(HttpExchange, HttpContent, Callback)</code></a>.
<p />
<a href="../../../../org/eclipse/jetty/client/HttpSender.html" title="class in org.eclipse.jetty.client"><code>HttpSender</code></a> governs two state machines.
<p />
The request state machine is updated by <a href="../../../../org/eclipse/jetty/client/HttpSender.html" title="class in org.eclipse.jetty.client"><code>HttpSender</code></a> as the various steps of sending a request
are executed, see <code>RequestState</code>.
At any point in time, a user thread may abort the request, which may (if the request has not been
completely sent yet) move the request state machine to <code>RequestState#FAILURE</code>.
The request state machine guarantees that the request steps are executed (by I/O threads) only if
the request has not been failed already.
<p />
The sender state machine is updated by <a href="../../../../org/eclipse/jetty/client/HttpSender.html" title="class in org.eclipse.jetty.client"><code>HttpSender</code></a> from three sources: deferred content notifications
(via <a href="../../../../org/eclipse/jetty/client/HttpSender.html#onContent()"><code>onContent()</code></a>), 100-continue notifications (via <a href="../../../../org/eclipse/jetty/client/HttpSender.html#proceed(org.eclipse.jetty.client.HttpExchange,%20java.lang.Throwable)"><code>proceed(HttpExchange, Throwable)</code></a>)
and normal request send (via <a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendContent(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)"><code>sendContent(HttpExchange, HttpContent, Callback)</code></a>).
This state machine must guarantee that the request sending is never executed concurrently: only one of
those sources may trigger the call to <a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendContent(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)"><code>sendContent(HttpExchange, HttpContent, Callback)</code></a>.</div>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/eclipse/jetty/client/HttpReceiver.html" title="class in org.eclipse.jetty.client"><code>HttpReceiver</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../org/eclipse/jetty/util/log/Logger.html" title="interface in org.eclipse.jetty.util.log">Logger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#LOG">LOG</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#HttpSender(org.eclipse.jetty.client.HttpChannel)">HttpSender</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpChannel.html" title="class in org.eclipse.jetty.client">HttpChannel</a>&nbsp;channel)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#abort(org.eclipse.jetty.client.HttpExchange,%20java.lang.Throwable)">abort</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#anyToFailure(java.lang.Throwable)">anyToFailure</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#beginToHeaders(org.eclipse.jetty.client.HttpExchange)">beginToHeaders</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#dispose()">dispose</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#expects100Continue(org.eclipse.jetty.client.api.Request)">expects100Continue</a></strong>(<a href="../../../../org/eclipse/jetty/client/api/Request.html" title="interface in org.eclipse.jetty.client.api">Request</a>&nbsp;request)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/jetty/client/HttpChannel.html" title="class in org.eclipse.jetty.client">HttpChannel</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#getHttpChannel()">getHttpChannel</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#getHttpExchange()">getHttpExchange</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#headersToCommit(org.eclipse.jetty.client.HttpExchange)">headersToCommit</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#onContent()">onContent</a></strong>()</code>
<div class="block">Callback method invoked when content is available</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#proceed(org.eclipse.jetty.client.HttpExchange,%20java.lang.Throwable)">proceed</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#queuedToBegin(org.eclipse.jetty.client.HttpExchange)">queuedToBegin</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#reset()">reset</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#send(org.eclipse.jetty.client.HttpExchange)">send</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendContent(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)">sendContent</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client">HttpContent</a>&nbsp;content,
<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code>
<div class="block">Implementations should send the content at the <a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client"><code>HttpContent</code></a> cursor position over the wire.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendHeaders(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)">sendHeaders</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client">HttpContent</a>&nbsp;content,
<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code>
<div class="block">Implementations should send the HTTP headers over the wire, possibly with some content,
in a single write, and notify the given <code>callback</code> of the result of this operation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#someToContent(org.eclipse.jetty.client.HttpExchange,%20java.nio.ByteBuffer)">someToContent</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;content)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#someToSuccess(org.eclipse.jetty.client.HttpExchange)">someToSuccess</a></strong>(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/jetty/client/HttpSender.html#toString()">toString</a></strong>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LOG</h4>
<pre>protected static final&nbsp;<a href="../../../../org/eclipse/jetty/util/log/Logger.html" title="interface in org.eclipse.jetty.util.log">Logger</a> LOG</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="HttpSender(org.eclipse.jetty.client.HttpChannel)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HttpSender</h4>
<pre>protected&nbsp;HttpSender(<a href="../../../../org/eclipse/jetty/client/HttpChannel.html" title="class in org.eclipse.jetty.client">HttpChannel</a>&nbsp;channel)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getHttpChannel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHttpChannel</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/jetty/client/HttpChannel.html" title="class in org.eclipse.jetty.client">HttpChannel</a>&nbsp;getHttpChannel()</pre>
</li>
</ul>
<a name="getHttpExchange()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHttpExchange</h4>
<pre>protected&nbsp;<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;getHttpExchange()</pre>
</li>
</ul>
<a name="onContent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onContent</h4>
<pre>public&nbsp;void&nbsp;onContent()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../org/eclipse/jetty/client/AsyncContentProvider.Listener.html#onContent()">AsyncContentProvider.Listener</a></code></strong></div>
<div class="block">Callback method invoked when content is available</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/eclipse/jetty/client/AsyncContentProvider.Listener.html#onContent()">onContent</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/eclipse/jetty/client/AsyncContentProvider.Listener.html" title="interface in org.eclipse.jetty.client">AsyncContentProvider.Listener</a></code></dd>
</dl>
</li>
</ul>
<a name="send(org.eclipse.jetty.client.HttpExchange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>send</h4>
<pre>public&nbsp;void&nbsp;send(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</pre>
</li>
</ul>
<a name="expects100Continue(org.eclipse.jetty.client.api.Request)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expects100Continue</h4>
<pre>protected&nbsp;boolean&nbsp;expects100Continue(<a href="../../../../org/eclipse/jetty/client/api/Request.html" title="interface in org.eclipse.jetty.client.api">Request</a>&nbsp;request)</pre>
</li>
</ul>
<a name="queuedToBegin(org.eclipse.jetty.client.HttpExchange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>queuedToBegin</h4>
<pre>protected&nbsp;boolean&nbsp;queuedToBegin(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</pre>
</li>
</ul>
<a name="beginToHeaders(org.eclipse.jetty.client.HttpExchange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beginToHeaders</h4>
<pre>protected&nbsp;boolean&nbsp;beginToHeaders(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</pre>
</li>
</ul>
<a name="headersToCommit(org.eclipse.jetty.client.HttpExchange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>headersToCommit</h4>
<pre>protected&nbsp;boolean&nbsp;headersToCommit(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</pre>
</li>
</ul>
<a name="someToContent(org.eclipse.jetty.client.HttpExchange, java.nio.ByteBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>someToContent</h4>
<pre>protected&nbsp;boolean&nbsp;someToContent(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;content)</pre>
</li>
</ul>
<a name="someToSuccess(org.eclipse.jetty.client.HttpExchange)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>someToSuccess</h4>
<pre>protected&nbsp;boolean&nbsp;someToSuccess(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange)</pre>
</li>
</ul>
<a name="anyToFailure(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>anyToFailure</h4>
<pre>protected&nbsp;boolean&nbsp;anyToFailure(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</pre>
</li>
</ul>
<a name="sendHeaders(org.eclipse.jetty.client.HttpExchange, org.eclipse.jetty.client.HttpContent, org.eclipse.jetty.util.Callback)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendHeaders</h4>
<pre>protected abstract&nbsp;void&nbsp;sendHeaders(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client">HttpContent</a>&nbsp;content,
<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</pre>
<div class="block">Implementations should send the HTTP headers over the wire, possibly with some content,
in a single write, and notify the given <code>callback</code> of the result of this operation.
<p />
If there is more content to send, then <a href="../../../../org/eclipse/jetty/client/HttpSender.html#sendContent(org.eclipse.jetty.client.HttpExchange,%20org.eclipse.jetty.client.HttpContent,%20org.eclipse.jetty.util.Callback)"><code>sendContent(HttpExchange, HttpContent, Callback)</code></a>
will be invoked.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>exchange</code> - the exchange to send</dd><dd><code>content</code> - the content to send</dd><dd><code>callback</code> - the callback to notify</dd></dl>
</li>
</ul>
<a name="sendContent(org.eclipse.jetty.client.HttpExchange, org.eclipse.jetty.client.HttpContent, org.eclipse.jetty.util.Callback)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sendContent</h4>
<pre>protected abstract&nbsp;void&nbsp;sendContent(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client">HttpContent</a>&nbsp;content,
<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</pre>
<div class="block">Implementations should send the content at the <a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client"><code>HttpContent</code></a> cursor position over the wire.
<p />
The <a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client"><code>HttpContent</code></a> cursor is advanced by <a href="../../../../org/eclipse/jetty/client/HttpSender.html" title="class in org.eclipse.jetty.client"><code>HttpSender</code></a> at the right time, and if more
content needs to be sent, this method is invoked again; subclasses need only to send the content
at the <a href="../../../../org/eclipse/jetty/client/HttpContent.html" title="class in org.eclipse.jetty.client"><code>HttpContent</code></a> cursor position.
<p />
This method is invoked one last time when <a href="../../../../org/eclipse/jetty/client/HttpContent.html#isConsumed()"><code>HttpContent.isConsumed()</code></a> is true and therefore
there is no actual content to send.
This is done to allow subclasses to write "terminal" bytes (such as the terminal chunk when the
transfer encoding is chunked) if their protocol needs to.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>exchange</code> - the exchange to send</dd><dd><code>content</code> - the content to send</dd><dd><code>callback</code> - the callback to notify</dd></dl>
</li>
</ul>
<a name="reset()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>protected&nbsp;void&nbsp;reset()</pre>
</li>
</ul>
<a name="dispose()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispose</h4>
<pre>protected&nbsp;void&nbsp;dispose()</pre>
</li>
</ul>
<a name="proceed(org.eclipse.jetty.client.HttpExchange, java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proceed</h4>
<pre>public&nbsp;void&nbsp;proceed(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</pre>
</li>
</ul>
<a name="abort(org.eclipse.jetty.client.HttpExchange, java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>abort</h4>
<pre>public&nbsp;boolean&nbsp;abort(<a href="../../../../org/eclipse/jetty/client/HttpExchange.html" title="class in org.eclipse.jetty.client">HttpExchange</a>&nbsp;exchange,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;failure)</pre>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HttpSender.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 class="aboutLanguage"><em><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1149868-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/eclipse/jetty/client/HttpResponseException.html" title="class in org.eclipse.jetty.client"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/jetty/client/LeakTrackingConnectionPool.html" title="class in org.eclipse.jetty.client"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/jetty/client/HttpSender.html" target="_top">Frames</a></li>
<li><a href="HttpSender.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All 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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&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 name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1995-2017 <a href="http://webtide.com">Webtide</a>. All Rights Reserved.</small></p>
</body>
</html>