blob: f8488197ccf937bc1fbd212a7be7f9e5f4f4c799 [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 (1.8.0_92) on Thu Jun 07 14:26:27 EDT 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EndPoint (Jetty :: Project 9.3.24.v20180605 API)</title>
<meta name="date" content="2018-06-07">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="EndPoint (Jetty :: Project 9.3.24.v20180605 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<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/EndPoint.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">
<li><a href="../../../../org/eclipse/jetty/io/ConnectionStatistics.html" title="class in org.eclipse.jetty.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/jetty/io/EofException.html" title="class in org.eclipse.jetty.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/jetty/io/EndPoint.html" target="_top">Frames</a></li>
<li><a href="EndPoint.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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.io</div>
<h2 title="Interface EndPoint" class="title">Interface EndPoint</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd>java.lang.AutoCloseable, java.io.Closeable</dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../../org/eclipse/jetty/io/ManagedSelector.SelectableEndPoint.html" title="interface in org.eclipse.jetty.io">ManagedSelector.SelectableEndPoint</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../org/eclipse/jetty/io/AbstractEndPoint.html" title="class in org.eclipse.jetty.io">AbstractEndPoint</a>, <a href="../../../../org/eclipse/jetty/io/ByteArrayEndPoint.html" title="class in org.eclipse.jetty.io">ByteArrayEndPoint</a>, <a href="../../../../org/eclipse/jetty/io/ChannelEndPoint.html" title="class in org.eclipse.jetty.io">ChannelEndPoint</a>, <a href="../../../../org/eclipse/jetty/server/LocalConnector.LocalEndPoint.html" title="class in org.eclipse.jetty.server">LocalConnector.LocalEndPoint</a>, <a href="../../../../org/eclipse/jetty/io/NetworkTrafficSelectChannelEndPoint.html" title="class in org.eclipse.jetty.io">NetworkTrafficSelectChannelEndPoint</a>, <a href="../../../../org/eclipse/jetty/server/ProxyConnectionFactory.ProxyEndPoint.html" title="class in org.eclipse.jetty.server">ProxyConnectionFactory.ProxyEndPoint</a>, <a href="../../../../org/eclipse/jetty/io/SelectChannelEndPoint.html" title="class in org.eclipse.jetty.io">SelectChannelEndPoint</a>, <a href="../../../../org/eclipse/jetty/io/ssl/SslConnection.DecryptedEndPoint.html" title="class in org.eclipse.jetty.io.ssl">SslConnection.DecryptedEndPoint</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">EndPoint</span>
extends java.io.Closeable</pre>
<div class="block">A transport EndPoint
<h3>Asynchronous Methods</h3>
<p>The asynchronous scheduling methods of <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a>
has been influenced by NIO.2 Futures and Completion
handlers, but does not use those actual interfaces because they have
some inefficiencies.</p>
<p>This class will frequently be used in conjunction with some of the utility
implementations of <a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util"><code>Callback</code></a>, such as <a href="../../../../org/eclipse/jetty/util/FutureCallback.html" title="class in org.eclipse.jetty.util"><code>FutureCallback</code></a> and
<a href="../../../../org/eclipse/jetty/util/IteratingCallback.html" title="class in org.eclipse.jetty.util"><code>IteratingCallback</code></a>. Examples are:</p>
<h3>Blocking Read</h3>
<p>A FutureCallback can be used to block until an endpoint is ready to be filled
from:</p>
<blockquote><pre>
FutureCallback&lt;String&gt; future = new FutureCallback&lt;&gt;();
endpoint.fillInterested("ContextObj",future);
...
String context = future.get(); // This blocks
int filled=endpoint.fill(mybuffer);
</pre></blockquote>
<h3>Dispatched Read</h3>
<p>By using a different callback, the read can be done asynchronously in its own dispatched thread:</p>
<blockquote><pre>
endpoint.fillInterested("ContextObj",new ExecutorCallback&lt;String&gt;(executor)
{
public void onCompleted(String context)
{
int filled=endpoint.fill(mybuffer);
...
}
public void onFailed(String context,Throwable cause) {...}
});
</pre></blockquote>
<p>The executor callback can also be customized to not dispatch in some circumstances when
it knows it can use the callback thread and does not need to dispatch.</p>
<h3>Blocking Write</h3>
<p>The write contract is that the callback complete is not called until all data has been
written or there is a failure. For blocking this looks like:</p>
<blockquote><pre>
FutureCallback&lt;String&gt; future = new FutureCallback&lt;&gt;();
endpoint.write("ContextObj",future,headerBuffer,contentBuffer);
String context = future.get(); // This blocks
</pre></blockquote>
<h3>Dispatched Write</h3>
<p>Note also that multiple buffers may be passed in write so that gather writes
can be done:</p>
<blockquote><pre>
endpoint.write("ContextObj",new ExecutorCallback&lt;String&gt;(executor)
{
public void onCompleted(String context)
{
int filled=endpoint.fill(mybuffer);
...
}
public void onFailed(String context,Throwable cause) {...}
},headerBuffer,contentBuffer);
</pre></blockquote></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#close--">close</a></span>()</code>
<div class="block">Close any backing stream associated with the endpoint</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-">fill</a></span>(java.nio.ByteBuffer&nbsp;buffer)</code>
<div class="block">Fill the passed buffer with data from this endpoint.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#fillInterested-org.eclipse.jetty.util.Callback-">fillInterested</a></span>(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code>
<div class="block">Requests callback methods to be invoked when a call to <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> would return data or EOF.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#flush-java.nio.ByteBuffer...-">flush</a></span>(java.nio.ByteBuffer...&nbsp;buffer)</code>
<div class="block">Flush data from the passed header/buffer to this endpoint.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getConnection--">getConnection</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getCreatedTimeStamp--">getCreatedTimeStamp</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getIdleTimeout--">getIdleTimeout</a></span>()</code>
<div class="block">Get the max idle time in ms.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.net.InetSocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getLocalAddress--">getLocalAddress</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.net.InetSocketAddress</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getTransport--">getTransport</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#isFillInterested--">isFillInterested</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#isInputShutdown--">isInputShutdown</a></span>()</code>
<div class="block">Test if the input is shutdown.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#isOpen--">isOpen</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#isOptimizedForDirectBuffers--">isOptimizedForDirectBuffers</a></span>()</code>
<div class="block">Is the endpoint optimized for DirectBuffer usage</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#isOutputShutdown--">isOutputShutdown</a></span>()</code>
<div class="block">Test if output is shutdown.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#onClose--">onClose</a></span>()</code>
<div class="block">Callback method invoked when this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a> is close.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#onOpen--">onOpen</a></span>()</code>
<div class="block">Callback method invoked when this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a> is opened.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#setConnection-org.eclipse.jetty.io.Connection-">setConnection</a></span>(<a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>&nbsp;connection)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#setIdleTimeout-long-">setIdleTimeout</a></span>(long&nbsp;idleTimeout)</code>
<div class="block">Set the idle timeout.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#shutdownOutput--">shutdownOutput</a></span>()</code>
<div class="block">Shutdown the output.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#tryFillInterested-org.eclipse.jetty.util.Callback-">tryFillInterested</a></span>(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</code>
<div class="block">Requests callback methods to be invoked when a call to <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> would return data or EOF.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#upgrade-org.eclipse.jetty.io.Connection-">upgrade</a></span>(<a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>&nbsp;newConnection)</code>
<div class="block">Upgrade connections.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/eclipse/jetty/io/EndPoint.html#write-org.eclipse.jetty.util.Callback-java.nio.ByteBuffer...-">write</a></span>(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback,
java.nio.ByteBuffer...&nbsp;buffers)</code>
<div class="block">Writes the given buffers via <a href="../../../../org/eclipse/jetty/io/EndPoint.html#flush-java.nio.ByteBuffer...-"><code>flush(ByteBuffer...)</code></a> and invokes callback methods when either
all the data has been flushed or an error occurs.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getLocalAddress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalAddress</h4>
<pre>java.net.InetSocketAddress&nbsp;getLocalAddress()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The local Inet address to which this <code>EndPoint</code> is bound, or <code>null</code>
if this <code>EndPoint</code> does not represent a network connection.</dd>
</dl>
</li>
</ul>
<a name="getRemoteAddress--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRemoteAddress</h4>
<pre>java.net.InetSocketAddress&nbsp;getRemoteAddress()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The remote Inet address to which this <code>EndPoint</code> is bound, or <code>null</code>
if this <code>EndPoint</code> does not represent a network connection.</dd>
</dl>
</li>
</ul>
<a name="isOpen--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOpen</h4>
<pre>boolean&nbsp;isOpen()</pre>
</li>
</ul>
<a name="getCreatedTimeStamp--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCreatedTimeStamp</h4>
<pre>long&nbsp;getCreatedTimeStamp()</pre>
</li>
</ul>
<a name="shutdownOutput--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdownOutput</h4>
<pre>void&nbsp;shutdownOutput()</pre>
<div class="block">Shutdown the output.
<p>This call indicates that no more data will be sent on this endpoint that
that the remote end should read an EOF once all previously sent data has been
consumed. Shutdown may be done either at the TCP/IP level, as a protocol exchange (Eg
TLS close handshake) or both.
<p>
If the endpoint has <a href="../../../../org/eclipse/jetty/io/EndPoint.html#isInputShutdown--"><code>isInputShutdown()</code></a> true, then this call has the same effect
as <a href="../../../../org/eclipse/jetty/io/EndPoint.html#close--"><code>close()</code></a>.</div>
</li>
</ul>
<a name="isOutputShutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOutputShutdown</h4>
<pre>boolean&nbsp;isOutputShutdown()</pre>
<div class="block">Test if output is shutdown.
The output is shutdown by a call to <a href="../../../../org/eclipse/jetty/io/EndPoint.html#shutdownOutput--"><code>shutdownOutput()</code></a>
or <a href="../../../../org/eclipse/jetty/io/EndPoint.html#close--"><code>close()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the output is shutdown or the endpoint is closed.</dd>
</dl>
</li>
</ul>
<a name="isInputShutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInputShutdown</h4>
<pre>boolean&nbsp;isInputShutdown()</pre>
<div class="block">Test if the input is shutdown.
The input is shutdown if an EOF has been read while doing
a <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a>. Once the input is shutdown, all calls to
<a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> will return -1, until such time as the
end point is close, when they will return <a href="../../../../org/eclipse/jetty/io/EofException.html" title="class in org.eclipse.jetty.io"><code>EofException</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the input is shutdown or the endpoint is closed.</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Close any backing stream associated with the endpoint</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.lang.AutoCloseable</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>close</code>&nbsp;in interface&nbsp;<code>java.io.Closeable</code></dd>
</dl>
</li>
</ul>
<a name="fill-java.nio.ByteBuffer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fill</h4>
<pre>int&nbsp;fill(java.nio.ByteBuffer&nbsp;buffer)
throws java.io.IOException</pre>
<div class="block">Fill the passed buffer with data from this endpoint. The bytes are appended to any
data already in the buffer by writing from the buffers limit up to it's capacity.
The limit is updated to include the filled bytes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The buffer to fill. The position and limit are modified during the fill. After the
operation, the position is unchanged and the limit is increased to reflect the new data filled.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>int</code> value indicating the number of bytes
filled or -1 if EOF is read or the input is shutdown.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - if the endpoint is closed.</dd>
</dl>
</li>
</ul>
<a name="flush-java.nio.ByteBuffer...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flush</h4>
<pre>boolean&nbsp;flush(java.nio.ByteBuffer...&nbsp;buffer)
throws java.io.IOException</pre>
<div class="block">Flush data from the passed header/buffer to this endpoint. As many bytes as can be consumed
are taken from the header/buffer position up until the buffer limit. The header/buffers position
is updated to indicate how many bytes have been consumed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - the buffers to flush</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True IFF all the buffers have been consumed and the endpoint has flushed the data to its
destination (ie is not buffering any data).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code> - If the endpoint is closed or output is shutdown.</dd>
</dl>
</li>
</ul>
<a name="getTransport--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransport</h4>
<pre>java.lang.Object&nbsp;getTransport()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The underlying transport object (socket, channel, etc.)</dd>
</dl>
</li>
</ul>
<a name="getIdleTimeout--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIdleTimeout</h4>
<pre>long&nbsp;getIdleTimeout()</pre>
<div class="block">Get the max idle time in ms.
<p>The max idle time is the time the endpoint can be idle before
extraordinary handling takes place.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the max idle time in ms or if ms &lt;= 0 implies an infinite timeout</dd>
</dl>
</li>
</ul>
<a name="setIdleTimeout-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIdleTimeout</h4>
<pre>void&nbsp;setIdleTimeout(long&nbsp;idleTimeout)</pre>
<div class="block">Set the idle timeout.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>idleTimeout</code> - the idle timeout in MS. Timeout &lt;= 0 implies an infinite timeout</dd>
</dl>
</li>
</ul>
<a name="fillInterested-org.eclipse.jetty.util.Callback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fillInterested</h4>
<pre>void&nbsp;fillInterested(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)
throws java.nio.channels.ReadPendingException</pre>
<div class="block"><p>Requests callback methods to be invoked when a call to <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> would return data or EOF.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback to call when an error occurs or we are readable.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.nio.channels.ReadPendingException</code> - if another read operation is concurrent.</dd>
</dl>
</li>
</ul>
<a name="tryFillInterested-org.eclipse.jetty.util.Callback-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryFillInterested</h4>
<pre>boolean&nbsp;tryFillInterested(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback)</pre>
<div class="block"><p>Requests callback methods to be invoked when a call to <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> would return data or EOF.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback to call when an error occurs or we are readable.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if set</dd>
</dl>
</li>
</ul>
<a name="isFillInterested--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFillInterested</h4>
<pre>boolean&nbsp;isFillInterested()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fillInterested-org.eclipse.jetty.util.Callback-"><code>fillInterested(Callback)</code></a> has been called, but <a href="../../../../org/eclipse/jetty/io/EndPoint.html#fill-java.nio.ByteBuffer-"><code>fill(ByteBuffer)</code></a> has not yet
been called</dd>
</dl>
</li>
</ul>
<a name="write-org.eclipse.jetty.util.Callback-java.nio.ByteBuffer...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>void&nbsp;write(<a href="../../../../org/eclipse/jetty/util/Callback.html" title="interface in org.eclipse.jetty.util">Callback</a>&nbsp;callback,
java.nio.ByteBuffer...&nbsp;buffers)
throws java.nio.channels.WritePendingException</pre>
<div class="block"><p>Writes the given buffers via <a href="../../../../org/eclipse/jetty/io/EndPoint.html#flush-java.nio.ByteBuffer...-"><code>flush(ByteBuffer...)</code></a> and invokes callback methods when either
all the data has been flushed or an error occurs.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>callback</code> - the callback to call when an error occurs or the write completed.</dd>
<dd><code>buffers</code> - one or more <code>ByteBuffer</code>s that will be flushed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.nio.channels.WritePendingException</code> - if another write operation is concurrent.</dd>
</dl>
</li>
</ul>
<a name="getConnection--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
<pre><a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>&nbsp;getConnection()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io"><code>Connection</code></a> associated with this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/jetty/io/EndPoint.html#setConnection-org.eclipse.jetty.io.Connection-"><code>setConnection(Connection)</code></a></dd>
</dl>
</li>
</ul>
<a name="setConnection-org.eclipse.jetty.io.Connection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setConnection</h4>
<pre>void&nbsp;setConnection(<a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>&nbsp;connection)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>connection</code> - the <a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io"><code>Connection</code></a> associated with this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/jetty/io/EndPoint.html#getConnection--"><code>getConnection()</code></a>,
<a href="../../../../org/eclipse/jetty/io/EndPoint.html#upgrade-org.eclipse.jetty.io.Connection-"><code>upgrade(Connection)</code></a></dd>
</dl>
</li>
</ul>
<a name="onOpen--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onOpen</h4>
<pre>void&nbsp;onOpen()</pre>
<div class="block"><p>Callback method invoked when this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a> is opened.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/jetty/io/EndPoint.html#onClose--"><code>onClose()</code></a></dd>
</dl>
</li>
</ul>
<a name="onClose--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onClose</h4>
<pre>void&nbsp;onClose()</pre>
<div class="block"><p>Callback method invoked when this <a href="../../../../org/eclipse/jetty/io/EndPoint.html" title="interface in org.eclipse.jetty.io"><code>EndPoint</code></a> is close.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/eclipse/jetty/io/EndPoint.html#onOpen--"><code>onOpen()</code></a></dd>
</dl>
</li>
</ul>
<a name="isOptimizedForDirectBuffers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptimizedForDirectBuffers</h4>
<pre>boolean&nbsp;isOptimizedForDirectBuffers()</pre>
<div class="block">Is the endpoint optimized for DirectBuffer usage</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if direct buffers can be used optimally.</dd>
</dl>
</li>
</ul>
<a name="upgrade-org.eclipse.jetty.io.Connection-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>upgrade</h4>
<pre>void&nbsp;upgrade(<a href="../../../../org/eclipse/jetty/io/Connection.html" title="interface in org.eclipse.jetty.io">Connection</a>&nbsp;newConnection)</pre>
<div class="block">Upgrade connections.
Close the old connection, update the endpoint and open the new connection.
If the oldConnection is an instance of <a href="../../../../org/eclipse/jetty/io/Connection.UpgradeFrom.html" title="interface in org.eclipse.jetty.io"><code>Connection.UpgradeFrom</code></a> then
a prefilled buffer is requested and passed to the newConnection if it is an instance
of <a href="../../../../org/eclipse/jetty/io/Connection.UpgradeTo.html" title="interface in org.eclipse.jetty.io"><code>Connection.UpgradeTo</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>newConnection</code> - The connection to upgrade to</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>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<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/EndPoint.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">
<li><a href="../../../../org/eclipse/jetty/io/ConnectionStatistics.html" title="class in org.eclipse.jetty.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/eclipse/jetty/io/EofException.html" title="class in org.eclipse.jetty.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/jetty/io/EndPoint.html" target="_top">Frames</a></li>
<li><a href="EndPoint.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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&#x2013;2018 <a href="http://webtide.com">Webtide</a>. All rights reserved.</small></p>
</body>
</html>