<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>IoBufferDecoder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/proxy/utils/IoBufferDecoder.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.proxy.utils;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.codec.textline.LineDelimiter;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * IoBufferDecoder.java - Handles an {@link IoBuffer} decoder which supports two methods : </em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * - dynamic delimiter decoding</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * - fixed length content reading</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * </em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @version $Rev: 685703 $, $Date: 2008-08-14 00:14:47 +0200 (Thu, 14 Aug 2008) $</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M3</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">IoBufferDecoder</a> {
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">DecodingContext</a> {
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> decodedBuffer;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>          <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> delimiter;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> contentLength = -1;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> matchCount = 0;
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clean() {
<a name="48" href="#48">48</a>              contentLength = -1;
<a name="49" href="#49">49</a>              matchCount = 0;
<a name="50" href="#50">50</a>              decodedBuffer = <strong class="jxr_keyword">null</strong>;
<a name="51" href="#51">51</a>          }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getContentLength() {
<a name="54" href="#54">54</a>              <strong class="jxr_keyword">return</strong> contentLength;
<a name="55" href="#55">55</a>          }
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContentLength(<strong class="jxr_keyword">int</strong> contentLength) {
<a name="58" href="#58">58</a>              <strong class="jxr_keyword">this</strong>.contentLength = contentLength;
<a name="59" href="#59">59</a>          }
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getMatchCount() {
<a name="62" href="#62">62</a>              <strong class="jxr_keyword">return</strong> matchCount;
<a name="63" href="#63">63</a>          }
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMatchCount(<strong class="jxr_keyword">int</strong> matchCount) {
<a name="66" href="#66">66</a>              <strong class="jxr_keyword">this</strong>.matchCount = matchCount;
<a name="67" href="#67">67</a>          }
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> getDecodedBuffer() {
<a name="70" href="#70">70</a>              <strong class="jxr_keyword">return</strong> decodedBuffer;
<a name="71" href="#71">71</a>          }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDecodedBuffer(<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> decodedBuffer) {
<a name="74" href="#74">74</a>              <strong class="jxr_keyword">this</strong>.decodedBuffer = decodedBuffer;
<a name="75" href="#75">75</a>          }
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> getDelimiter() {
<a name="78" href="#78">78</a>              <strong class="jxr_keyword">return</strong> delimiter;
<a name="79" href="#79">79</a>          }
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDelimiter(<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> delimiter) {
<a name="82" href="#82">82</a>              <strong class="jxr_keyword">this</strong>.delimiter = delimiter;
<a name="83" href="#83">83</a>          }
<a name="84" href="#84">84</a>      }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">DecodingContext</a> ctx = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">DecodingContext</a>();
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Creates a new instance that uses specified &lt;tt&gt;delimiter&lt;/tt&gt; byte array as a</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * message delimiter.</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">IoBufferDecoder</a>(byte[] delimiter) {
<a name="93" href="#93">93</a>          setDelimiter(delimiter, <strong class="jxr_keyword">true</strong>);
<a name="94" href="#94">94</a>      }
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * Creates a new instance that will read messages of &lt;tt&gt;contentLength&lt;/tt&gt; bytes.</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
<a name="99" href="#99">99</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/utils/IoBufferDecoder.html">IoBufferDecoder</a>(<strong class="jxr_keyword">int</strong> contentLength) {
<a name="100" href="#100">100</a>         setContentLength(contentLength, false);
<a name="101" href="#101">101</a>     }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>     <em class="jxr_javadoccomment">/**</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * Sets the the length of the content line to be decoded.</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * When set, it overrides the dynamic delimiter setting. The default value is &lt;tt&gt;-1&lt;/tt&gt;.</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * Content length method will be used for decoding on the next decodeOnce call. </em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * Delimiter matching is reset only if &lt;tt&gt;resetMatchCount&lt;/tt&gt; is true.</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     */</em>
<a name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContentLength(<strong class="jxr_keyword">int</strong> contentLength, <strong class="jxr_keyword">boolean</strong> resetMatchCount) {
<a name="110" href="#110">110</a>         <strong class="jxr_keyword">if</strong> (contentLength &lt;= 0) {
<a name="111" href="#111">111</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"contentLength: "</span>
<a name="112" href="#112">112</a>                     + contentLength);
<a name="113" href="#113">113</a>         }
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         ctx.setContentLength(contentLength);
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">if</strong> (resetMatchCount) {
<a name="117" href="#117">117</a>             ctx.setMatchCount(0);
<a name="118" href="#118">118</a>         }
<a name="119" href="#119">119</a>     }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <em class="jxr_javadoccomment">/**</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * Dynamically sets a new delimiter. Next time </em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * {@link IoBufferDecoder#decodeOnce(IoSession, int) } will be called it will use the new </em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * delimiter. Delimiter matching is reset only if &lt;tt&gt;resetMatchCount&lt;/tt&gt; is true but </em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * decoding will continue from current position.</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * </em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * NB : Delimiter {@link LineDelimiter#AUTO} is not allowed. </em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     */</em>
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDelimiter(byte[] delim, <strong class="jxr_keyword">boolean</strong> resetMatchCount) {
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> (delim == <strong class="jxr_keyword">null</strong>) {
<a name="131" href="#131">131</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"Null delimiter not allowed"</span>);
<a name="132" href="#132">132</a>         }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         <em class="jxr_comment">// Convert delimiter to IoBuffer.</em>
<a name="135" href="#135">135</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> delimiter = IoBuffer.allocate(delim.length);
<a name="136" href="#136">136</a>         delimiter.put(delim);
<a name="137" href="#137">137</a>         delimiter.flip();
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>         ctx.setDelimiter(delimiter);
<a name="140" href="#140">140</a>         ctx.setContentLength(-1);
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> (resetMatchCount) {
<a name="142" href="#142">142</a>             ctx.setMatchCount(0);
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a>     }
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>     <em class="jxr_javadoccomment">/**</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * Will return null unless it has enough data to decode. If &lt;code&gt;contentLength&lt;/code&gt;</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * is set then it tries to retrieve &lt;code&gt;contentLength&lt;/code&gt; bytes from the buffer</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * otherwise it will scan the buffer to find the data &lt;code&gt;delimiter&lt;/code&gt; and return</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * all the data and the trailing delimiter.</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> decodeFully(<a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> in) {
<a name="153" href="#153">153</a>         <strong class="jxr_keyword">int</strong> contentLength = ctx.getContentLength();
<a name="154" href="#154">154</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> decodedBuffer = ctx.getDecodedBuffer();
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         <strong class="jxr_keyword">int</strong> oldLimit = in.limit();
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>         <em class="jxr_comment">// Retrieve fixed length content</em>
<a name="159" href="#159">159</a>         <strong class="jxr_keyword">if</strong> (contentLength &gt; -1) {
<a name="160" href="#160">160</a>             <strong class="jxr_keyword">if</strong> (decodedBuffer == <strong class="jxr_keyword">null</strong>) {
<a name="161" href="#161">161</a>                 decodedBuffer = IoBuffer.allocate(contentLength).setAutoExpand(
<a name="162" href="#162">162</a>                         <strong class="jxr_keyword">true</strong>);
<a name="163" href="#163">163</a>             }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>             <strong class="jxr_keyword">if</strong> (in.remaining() &lt; contentLength) {
<a name="166" href="#166">166</a>                 <strong class="jxr_keyword">int</strong> readBytes = in.remaining();
<a name="167" href="#167">167</a>                 decodedBuffer.put(in);
<a name="168" href="#168">168</a>                 ctx.setDecodedBuffer(decodedBuffer);
<a name="169" href="#169">169</a>                 ctx.setContentLength(contentLength - readBytes);
<a name="170" href="#170">170</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>             } <strong class="jxr_keyword">else</strong> {
<a name="173" href="#173">173</a>                 <strong class="jxr_keyword">int</strong> newLimit = in.position() + contentLength;
<a name="174" href="#174">174</a>                 in.limit(newLimit);
<a name="175" href="#175">175</a>                 decodedBuffer.put(in);
<a name="176" href="#176">176</a>                 decodedBuffer.flip();
<a name="177" href="#177">177</a>                 in.limit(oldLimit);
<a name="178" href="#178">178</a>                 ctx.clean();
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>                 <strong class="jxr_keyword">return</strong> decodedBuffer;
<a name="181" href="#181">181</a>             }
<a name="182" href="#182">182</a>         }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>         <em class="jxr_comment">// Not a fixed length matching so try to find a delimiter match</em>
<a name="185" href="#185">185</a>         <strong class="jxr_keyword">int</strong> oldPos = in.position();
<a name="186" href="#186">186</a>         <strong class="jxr_keyword">int</strong> matchCount = ctx.getMatchCount();
<a name="187" href="#187">187</a>         <a href="../../../../../org/apache/mina/core/buffer/IoBuffer.html">IoBuffer</a> delimiter = ctx.getDelimiter();
<a name="188" href="#188">188</a> 
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">while</strong> (in.hasRemaining()) {
<a name="190" href="#190">190</a>             byte b = in.get();
<a name="191" href="#191">191</a>             <strong class="jxr_keyword">if</strong> (delimiter.get(matchCount) == b) {
<a name="192" href="#192">192</a>                 matchCount++;
<a name="193" href="#193">193</a>                 <strong class="jxr_keyword">if</strong> (matchCount == delimiter.limit()) {
<a name="194" href="#194">194</a>                     <em class="jxr_comment">// Found a match.</em>
<a name="195" href="#195">195</a>                     <strong class="jxr_keyword">int</strong> pos = in.position();
<a name="196" href="#196">196</a>                     in.position(oldPos);
<a name="197" href="#197">197</a> 
<a name="198" href="#198">198</a>                     in.limit(pos);
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>                     <strong class="jxr_keyword">if</strong> (decodedBuffer == <strong class="jxr_keyword">null</strong>) {
<a name="201" href="#201">201</a>                         decodedBuffer = IoBuffer.allocate(in.remaining())
<a name="202" href="#202">202</a>                                 .setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="203" href="#203">203</a>                     }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>                     decodedBuffer.put(in);
<a name="206" href="#206">206</a>                     decodedBuffer.flip();
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>                     in.limit(oldLimit);
<a name="209" href="#209">209</a>                     ctx.clean();
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>                     <strong class="jxr_keyword">return</strong> decodedBuffer;
<a name="212" href="#212">212</a>                 }
<a name="213" href="#213">213</a>             } <strong class="jxr_keyword">else</strong> {
<a name="214" href="#214">214</a>                 in.position(Math.max(0, in.position() - matchCount));
<a name="215" href="#215">215</a>                 matchCount = 0;
<a name="216" href="#216">216</a>             }
<a name="217" href="#217">217</a>         }
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>         <em class="jxr_comment">// Copy remainder from buf.</em>
<a name="220" href="#220">220</a>         <strong class="jxr_keyword">if</strong> (in.remaining() &gt; 0) {
<a name="221" href="#221">221</a>             in.position(oldPos);
<a name="222" href="#222">222</a>             decodedBuffer.put(in);
<a name="223" href="#223">223</a>             in.position(in.limit());
<a name="224" href="#224">224</a>         }
<a name="225" href="#225">225</a> 
<a name="226" href="#226">226</a>         <em class="jxr_comment">// Save decoding state</em>
<a name="227" href="#227">227</a>         ctx.setMatchCount(matchCount);
<a name="228" href="#228">228</a>         ctx.setDecodedBuffer(decodedBuffer);
<a name="229" href="#229">229</a> 
<a name="230" href="#230">230</a>         <strong class="jxr_keyword">return</strong> decodedBuffer;
<a name="231" href="#231">231</a>     }
<a name="232" href="#232">232</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

