blob: f00b996ab6527781aed895422f8af5204894e910 [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_55) on Mon Sep 15 17:28:17 CEST 2014 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>CachedBufferAllocator (Apache MINA 2.0.8 API)</title>
<meta name="date" content="2014-09-15">
<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="CachedBufferAllocator (Apache MINA 2.0.8 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/CachedBufferAllocator.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/apache/mina/core/buffer/BufferDataException.html" title="class in org.apache.mina.core.buffer"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/core/buffer/CachedBufferAllocator.html" target="_top">Frames</a></li>
<li><a href="CachedBufferAllocator.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>Field&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>Field&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.apache.mina.core.buffer</div>
<h2 title="Class CachedBufferAllocator" class="title">Class CachedBufferAllocator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/1.5.0/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.apache.mina.core.buffer.CachedBufferAllocator</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">CachedBufferAllocator</span>
extends <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</a></pre>
<div class="block">An <a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer"><code>IoBufferAllocator</code></a> that caches the buffers which are likely to
be reused during auto-expansion of the buffers.
<p>
In <a href="../../../../../org/apache/mina/core/buffer/SimpleBufferAllocator.html" title="class in org.apache.mina.core.buffer"><code>SimpleBufferAllocator</code></a>, the underlying <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> of
the <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><code>IoBuffer</code></a> is reallocated on its capacity change, which means
the newly allocated bigger <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> replaces the old small
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a>. Consequently, the old <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> is marked
for garbage collection.
<p>
It's not a problem in most cases as long as the capacity change doesn't
happen frequently. However, once it happens too often, it burdens the
VM and the cost of filling the newly allocated <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> with
<code>NUL</code> surpass the cost of accessing the cache. In 2 dual-core
Opteron Italy 270 processors, <a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html" title="class in org.apache.mina.core.buffer"><code>CachedBufferAllocator</code></a> outperformed
<a href="../../../../../org/apache/mina/core/buffer/SimpleBufferAllocator.html" title="class in org.apache.mina.core.buffer"><code>SimpleBufferAllocator</code></a> in the following situation:
<ul>
<li>when a 32 bytes buffer is expanded 4 or more times,</li>
<li>when a 64 bytes buffer is expanded 4 or more times,</li>
<li>when a 128 bytes buffer is expanded 2 or more times,</li>
<li>and when a 256 bytes or bigger buffer is expanded 1 or more times.</li>
</ul>
Please note the observation above is subject to change in a different
environment.
<p>
<a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html" title="class in org.apache.mina.core.buffer"><code>CachedBufferAllocator</code></a> uses <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang"><code>ThreadLocal</code></a> to store the cached
buffer, allocates buffers whose capacity is power of 2 only and provides
performance advantage if <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html#free()"><code>IoBuffer.free()</code></a> is called properly.</div>
<dl><dt><span class="strong">Author:</span></dt>
<dd><a href="http://mina.apache.org">Apache MINA Project</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#CachedBufferAllocator()">CachedBufferAllocator</a></strong>()</code>
<div class="block">Creates a new instance with the default parameters
(#DEFAULT_MAX_POOL_SIZE and #DEFAULT_MAX_CACHED_BUFFER_SIZE).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#CachedBufferAllocator(int, int)">CachedBufferAllocator</a></strong>(int&nbsp;maxPoolSize,
int&nbsp;maxCachedBufferSize)</code>
<div class="block">Creates a new instance.</div>
</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><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#allocate(int, boolean)">allocate</a></strong>(int&nbsp;requestedCapacity,
boolean&nbsp;direct)</code>
<div class="block">Returns the buffer which is capable of the specified size.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#allocateNioBuffer(int, boolean)">allocateNioBuffer</a></strong>(int&nbsp;capacity,
boolean&nbsp;direct)</code>
<div class="block">Returns the NIO buffer which is capable of the specified size.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#dispose()">dispose</a></strong>()</code>
<div class="block">Dispose of this allocator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#getMaxCachedBufferSize()">getMaxCachedBufferSize</a></strong>()</code>
<div class="block">Returns the maximum capacity of a cached buffer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#getMaxPoolSize()">getMaxPoolSize</a></strong>()</code>
<div class="block">Returns the maximum number of buffers with the same capacity per thread.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#wrap(java.nio.ByteBuffer)">wrap</a></strong>(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;nioBuffer)</code>
<div class="block">Wraps the specified NIO <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> into MINA buffer.</div>
</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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/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/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/1.5.0/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/1.5.0/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/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" 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">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="CachedBufferAllocator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CachedBufferAllocator</h4>
<pre>public&nbsp;CachedBufferAllocator()</pre>
<div class="block">Creates a new instance with the default parameters
(#DEFAULT_MAX_POOL_SIZE and #DEFAULT_MAX_CACHED_BUFFER_SIZE).</div>
</li>
</ul>
<a name="CachedBufferAllocator(int, int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CachedBufferAllocator</h4>
<pre>public&nbsp;CachedBufferAllocator(int&nbsp;maxPoolSize,
int&nbsp;maxCachedBufferSize)</pre>
<div class="block">Creates a new instance.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>maxPoolSize</code> - the maximum number of buffers with the same capacity per thread.
<tt>0</tt> disables this limitation.</dd><dd><code>maxCachedBufferSize</code> - the maximum capacity of a cached buffer.
A buffer whose capacity is bigger than this value is
not pooled. <tt>0</tt> disables this limitation.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getMaxPoolSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxPoolSize</h4>
<pre>public&nbsp;int&nbsp;getMaxPoolSize()</pre>
<div class="block">Returns the maximum number of buffers with the same capacity per thread.
<tt>0</tt> means 'no limitation'.</div>
</li>
</ul>
<a name="getMaxCachedBufferSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxCachedBufferSize</h4>
<pre>public&nbsp;int&nbsp;getMaxCachedBufferSize()</pre>
<div class="block">Returns the maximum capacity of a cached buffer. A buffer whose
capacity is bigger than this value is not pooled. <tt>0</tt> means
'no limitation'.</div>
</li>
</ul>
<a name="allocate(int, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a>&nbsp;allocate(int&nbsp;requestedCapacity,
boolean&nbsp;direct)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#allocate(int, boolean)">IoBufferAllocator</a></code></strong></div>
<div class="block">Returns the buffer which is capable of the specified size.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#allocate(int, boolean)">allocate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>requestedCapacity</code> - the capacity of the buffer</dd><dd><code>direct</code> - <tt>true</tt> to get a direct buffer,
<tt>false</tt> to get a heap buffer.</dd></dl>
</li>
</ul>
<a name="allocateNioBuffer(int, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocateNioBuffer</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;allocateNioBuffer(int&nbsp;capacity,
boolean&nbsp;direct)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#allocateNioBuffer(int, boolean)">IoBufferAllocator</a></code></strong></div>
<div class="block">Returns the NIO buffer which is capable of the specified size.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#allocateNioBuffer(int, boolean)">allocateNioBuffer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>capacity</code> - the capacity of the buffer</dd><dd><code>direct</code> - <tt>true</tt> to get a direct buffer,
<tt>false</tt> to get a heap buffer.</dd></dl>
</li>
</ul>
<a name="wrap(java.nio.ByteBuffer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a>&nbsp;wrap(<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;nioBuffer)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#wrap(java.nio.ByteBuffer)">IoBufferAllocator</a></code></strong></div>
<div class="block">Wraps the specified NIO <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> into MINA buffer.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#wrap(java.nio.ByteBuffer)">wrap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</a></code></dd>
</dl>
</li>
</ul>
<a name="dispose()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>dispose</h4>
<pre>public&nbsp;void&nbsp;dispose()</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#dispose()">IoBufferAllocator</a></code></strong></div>
<div class="block">Dispose of this allocator.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html#dispose()">dispose</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/mina/core/buffer/IoBufferAllocator.html" title="interface in org.apache.mina.core.buffer">IoBufferAllocator</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/CachedBufferAllocator.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/apache/mina/core/buffer/BufferDataException.html" title="class in org.apache.mina.core.buffer"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/core/buffer/CachedBufferAllocator.html" target="_top">Frames</a></li>
<li><a href="CachedBufferAllocator.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>Field&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>Field&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; 2004&#x2013;2014 <a href="http://mina.apache.org/">Apache MINA Project</a>. All rights reserved.</small></p>
</body>
</html>