blob: f4421f7614e579791efcd336d242a490374e17ea [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_161) on Thu Mar 15 10:07:19 CET 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CachedBufferAllocator (Apache MINA 2.0.17 API Documentation)</title>
<meta name="date" content="2018-03-15">
<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="CachedBufferAllocator (Apache MINA 2.0.17 API Documentation)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</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/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="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><span class="typeNameLink">Next&nbsp;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&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><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/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.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="typeNameLabel">CachedBufferAllocator</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/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/7/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/7/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/7/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/7/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/7/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/7/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="simpleTagLabel">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="memberSummary" 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><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#CachedBufferAllocator--">CachedBufferAllocator</a></span>()</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><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#CachedBufferAllocator-int-int-">CachedBufferAllocator</a></span>(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="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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" 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><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#allocate-int-boolean-">allocate</a></span>(int&nbsp;requestedCapacity,
boolean&nbsp;direct)</code>
<div class="block">Returns the buffer which is capable of the specified size.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#allocateNioBuffer-int-boolean-">allocateNioBuffer</a></span>(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 id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#dispose--">dispose</a></span>()</code>
<div class="block">Dispose of this allocator.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#getMaxCachedBufferSize--">getMaxCachedBufferSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#getMaxPoolSize--">getMaxPoolSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" 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><span class="memberNameLink"><a href="../../../../../org/apache/mina/core/buffer/CachedBufferAllocator.html#wrap-java.nio.ByteBuffer-">wrap</a></span>(<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;nioBuffer)</code>
<div class="block">Wraps the specified NIO <a href="http://docs.oracle.com/javase/7/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/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#toString--" title="class or interface in java.lang">toString</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-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="paramLabel">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>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maximum number of buffers with the same capacity per thread.
<tt>0</tt> means 'no limitation'.</dd>
</dl>
</li>
</ul>
<a name="getMaxCachedBufferSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxCachedBufferSize</h4>
<pre>public&nbsp;int&nbsp;getMaxCachedBufferSize()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>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'.</dd>
</dl>
</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">Returns the buffer which is capable of the specified size.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The allocated <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><code>IoBuffer</code></a></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/7/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">Returns the NIO buffer which is capable of the specified size.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></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="paramLabel">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>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The allocated <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a></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/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;nioBuffer)</pre>
<div class="block">Wraps the specified NIO <a href="http://docs.oracle.com/javase/7/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><span class="overrideSpecifyLabel">Specified by:</span></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>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nioBuffer</code> - The <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a> to wrap</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><code>IoBuffer</code></a> wrapping the <a href="http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio"><code>ByteBuffer</code></a></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">Dispose of this allocator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></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>
<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/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="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><span class="typeNameLink">Next&nbsp;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&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><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;2018 <a href="http://mina.apache.org/">Apache MINA Project</a>. All rights reserved.</small></p>
</body>
</html>