<!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=ISO-8859-1" /><title>ResultMessageDecoder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/mina/examples/sumup/codec/ResultMessageDecoder.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: ResultMessageDecoder.java 357871 2005-12-20 01:56:40Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/package-summary.html">org.apache.mina.examples.sumup.codec</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.AbstractMessage;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.ResultMessage;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.protocol.codec.MessageDecoder;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em>/**<em>*</em></em>
<a name="28" href="#28">28</a>  <em> * A {@link MessageDecoder} that decodes {@link ResultMessage}.</em>
<a name="29" href="#29">29</a>  <em> *</em>
<a name="30" href="#30">30</a>  <em> * @author The Apache Directory Project</em>
<a name="31" href="#31">31</a>  <em> * @version $Rev: 357871 $, $Date: 2005-12-20 10:56:40 +0900 (Tue, 20 Dec 2005) $</em>
<a name="32" href="#32">32</a>  <em> */</em>
<a name="33" href="#33">33</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/ResultMessageDecoder.html">ResultMessageDecoder</a> <strong>extends</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/AbstractMessageDecoder.html">AbstractMessageDecoder</a>
<a name="34" href="#34">34</a>  {
<a name="35" href="#35">35</a>      <strong>private</strong> <strong>int</strong> code;
<a name="36" href="#36">36</a>      <strong>private</strong> <strong>boolean</strong> readCode;
<a name="37" href="#37">37</a>      
<a name="38" href="#38">38</a>      <strong>public</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/ResultMessageDecoder.html">ResultMessageDecoder</a>()
<a name="39" href="#39">39</a>      {
<a name="40" href="#40">40</a>          <strong>super</strong>( Constants.RESULT );
<a name="41" href="#41">41</a>      }
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong>protected</strong> <a href="../../../../../../org/apache/mina/examples/sumup/message/AbstractMessage.html">AbstractMessage</a> decodeBody( ProtocolSession session, ByteBuffer in )
<a name="44" href="#44">44</a>      {
<a name="45" href="#45">45</a>          <strong>if</strong>( !readCode )
<a name="46" href="#46">46</a>          {
<a name="47" href="#47">47</a>              <strong>if</strong>( in.remaining() &lt; Constants.RESULT_CODE_LEN )
<a name="48" href="#48">48</a>              {
<a name="49" href="#49">49</a>                  <strong>return</strong> <strong>null</strong>; <em class="comment">// Need more data.</em>
<a name="50" href="#50">50</a>              }
<a name="51" href="#51">51</a>              
<a name="52" href="#52">52</a>              code = in.getShort();
<a name="53" href="#53">53</a>              readCode = <strong>true</strong>;
<a name="54" href="#54">54</a>          }
<a name="55" href="#55">55</a>          
<a name="56" href="#56">56</a>          <strong>if</strong>( code == Constants.RESULT_OK )
<a name="57" href="#57">57</a>          {
<a name="58" href="#58">58</a>              <strong>if</strong>( in.remaining() &lt; Constants.RESULT_VALUE_LEN )
<a name="59" href="#59">59</a>              {
<a name="60" href="#60">60</a>                  <strong>return</strong> <strong>null</strong>;
<a name="61" href="#61">61</a>              }
<a name="62" href="#62">62</a>              
<a name="63" href="#63">63</a>              <a href="../../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a> m = <strong>new</strong> <a href="../../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a>();
<a name="64" href="#64">64</a>              m.setOk( <strong>true</strong> );
<a name="65" href="#65">65</a>              m.setValue( in.getInt() );
<a name="66" href="#66">66</a>              readCode = false;
<a name="67" href="#67">67</a>              <strong>return</strong> m;
<a name="68" href="#68">68</a>          }
<a name="69" href="#69">69</a>          <strong>else</strong>
<a name="70" href="#70">70</a>          {
<a name="71" href="#71">71</a>              <a href="../../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a> m = <strong>new</strong> <a href="../../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a>();
<a name="72" href="#72">72</a>              m.setOk( false );
<a name="73" href="#73">73</a>              readCode = false;
<a name="74" href="#74">74</a>              <strong>return</strong> m;
<a name="75" href="#75">75</a>          }
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

