blob: eefbc0d9903c229e4e9d3448587ebc3c541e376f [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_60) on Fri Feb 12 17:59:32 CET 2016 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IoBufferDecoder (Apache MINA 2.0.13 API)</title>
<meta name="date" content="2016-02-12">
<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="IoBufferDecoder (Apache MINA 2.0.13 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":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/IoBufferDecoder.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/proxy/utils/ByteUtilities.html" title="class in org.apache.mina.proxy.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.DecodingContext.html" title="class in org.apache.mina.proxy.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/proxy/utils/IoBufferDecoder.html" target="_top">Frames</a></li>
<li><a href="IoBufferDecoder.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><a href="#nested.class.summary">Nested</a>&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.proxy.utils</div>
<h2 title="Class IoBufferDecoder" class="title">Class IoBufferDecoder</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.proxy.utils.IoBufferDecoder</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.34">IoBufferDecoder</a>
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></pre>
<div class="block">IoBufferDecoder.java - Handles an <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer"><code>IoBuffer</code></a> decoder which supports
two methods :
- dynamic delimiter decoding
- fixed length content reading</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>MINA 2.0.0-M3</dd>
<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">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.DecodingContext.html" title="class in org.apache.mina.proxy.utils">IoBufferDecoder.DecodingContext</a></span></code>
<div class="block">The class holding the decoding context.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== 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/proxy/utils/IoBufferDecoder.html#IoBufferDecoder-byte:A-">IoBufferDecoder</a></span>(byte[]&nbsp;delimiter)</code>
<div class="block">Creates a new instance that uses specified <tt>delimiter</tt> byte array as a
message delimiter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html#IoBufferDecoder-int-">IoBufferDecoder</a></span>(int&nbsp;contentLength)</code>
<div class="block">Creates a new instance that will read messages of <tt>contentLength</tt> bytes.</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/proxy/utils/IoBufferDecoder.html#decodeFully-org.apache.mina.core.buffer.IoBuffer-">decodeFully</a></span>(<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a>&nbsp;in)</code>
<div class="block">Will return null unless it has enough data to decode.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html#setContentLength-int-boolean-">setContentLength</a></span>(int&nbsp;contentLength,
boolean&nbsp;resetMatchCount)</code>
<div class="block">Sets the the length of the content line to be decoded.</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/proxy/utils/IoBufferDecoder.html#setDelimiter-byte:A-boolean-">setDelimiter</a></span>(byte[]&nbsp;delim,
boolean&nbsp;resetMatchCount)</code>
<div class="block">Dynamically sets a new delimiter.</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="IoBufferDecoder-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IoBufferDecoder</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.115">IoBufferDecoder</a>(byte[]&nbsp;delimiter)</pre>
<div class="block">Creates a new instance that uses specified <tt>delimiter</tt> byte array as a
message delimiter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>delimiter</code> - an array of characters which delimits messages</dd>
</dl>
</li>
</ul>
<a name="IoBufferDecoder-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>IoBufferDecoder</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.124">IoBufferDecoder</a>(int&nbsp;contentLength)</pre>
<div class="block">Creates a new instance that will read messages of <tt>contentLength</tt> bytes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contentLength</code> - the exact length to read</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="setContentLength-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContentLength</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.137">setContentLength</a>(int&nbsp;contentLength,
boolean&nbsp;resetMatchCount)</pre>
<div class="block">Sets the the length of the content line to be decoded.
When set, it overrides the dynamic delimiter setting and content length
method will be used for decoding on the next decodeOnce call.
The default value is <tt>-1</tt>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contentLength</code> - the content length to match</dd>
<dd><code>resetMatchCount</code> - delimiter matching is reset if true</dd>
</dl>
</li>
</ul>
<a name="setDelimiter-byte:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDelimiter</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.159">setDelimiter</a>(byte[]&nbsp;delim,
boolean&nbsp;resetMatchCount)</pre>
<div class="block">Dynamically sets a new delimiter. Next time
<a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html#decodeFully-org.apache.mina.core.buffer.IoBuffer-"><code>decodeFully(IoBuffer)</code></a> will be called it will use the new
delimiter. Delimiter matching is reset only if <tt>resetMatchCount</tt> is true but
decoding will continue from current position.
NB : Delimiter <a href="../../../../../org/apache/mina/filter/codec/textline/LineDelimiter.html#AUTO"><code>LineDelimiter.AUTO</code></a> is not allowed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>delim</code> - the new delimiter as a byte array</dd>
<dd><code>resetMatchCount</code> - delimiter matching is reset if true</dd>
</dl>
</li>
</ul>
<a name="decodeFully-org.apache.mina.core.buffer.IoBuffer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>decodeFully</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/mina/proxy/utils/IoBufferDecoder.html#line.185">decodeFully</a>(<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html" title="class in org.apache.mina.core.buffer">IoBuffer</a>&nbsp;in)</pre>
<div class="block">Will return null unless it has enough data to decode. If <code>contentLength</code>
is set then it tries to retrieve <code>contentLength</code> bytes from the buffer
otherwise it will scan the buffer to find the data <code>delimiter</code> and return
all the data and the trailing delimiter.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>in</code> - the data to decode</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The decoded buffer</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/IoBufferDecoder.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/proxy/utils/ByteUtilities.html" title="class in org.apache.mina.proxy.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.DecodingContext.html" title="class in org.apache.mina.proxy.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/mina/proxy/utils/IoBufferDecoder.html" target="_top">Frames</a></li>
<li><a href="IoBufferDecoder.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><a href="#nested.class.summary">Nested</a>&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;2016 <a href="http://mina.apache.org/">Apache MINA Project</a>. All rights reserved.</small></p>
</body>
</html>