<!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>ClientSessionHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/sumup/ClientSessionHandler.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: ClientSessionHandler.java 355016 2005-12-08 07:00:30Z 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/package-summary.html">org.apache.mina.examples.sumup</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.IoHandler;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.common.IoHandlerAdapter;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.common.IoSession;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.examples.sumup.codec.SumUpProtocolCodecFactory;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.AddMessage;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.ResultMessage;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.filter.LoggingFilter;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.filter.codec.ProtocolCodecFactory;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.filter.codec.ProtocolCodecFilter;
<a name="30" href="#30">30</a>  <strong>import</strong> org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.mina.util.SessionLog;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em>/**<em>*</em></em>
<a name="34" href="#34">34</a>  <em> * {@link IoHandler} for SumUp client.</em>
<a name="35" href="#35">35</a>  <em> * </em>
<a name="36" href="#36">36</a>  <em> * @author The Apache Directory Project</em>
<a name="37" href="#37">37</a>  <em> * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $</em>
<a name="38" href="#38">38</a>  <em> */</em>
<a name="39" href="#39">39</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/sumup/ClientSessionHandler.html">ClientSessionHandler</a> <strong>extends</strong> IoHandlerAdapter
<a name="40" href="#40">40</a>  {
<a name="41" href="#41">41</a>      <strong>private</strong> <strong>final</strong> <strong>boolean</strong> useCustomCodec;
<a name="42" href="#42">42</a>      <strong>private</strong> <strong>final</strong> <strong>int</strong>[] values;
<a name="43" href="#43">43</a>      <strong>private</strong> <strong>boolean</strong> finished;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/examples/sumup/ClientSessionHandler.html">ClientSessionHandler</a>( <strong>boolean</strong> useCustomCodec, <strong>int</strong>[] values )
<a name="46" href="#46">46</a>      {
<a name="47" href="#47">47</a>          <strong>this</strong>.useCustomCodec = useCustomCodec;
<a name="48" href="#48">48</a>          <strong>this</strong>.values = values;
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong>public</strong> <strong>boolean</strong> isFinished()
<a name="52" href="#52">52</a>      {
<a name="53" href="#53">53</a>          <strong>return</strong> finished;
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong>public</strong> <strong>void</strong> sessionCreated( IoSession session ) throws Exception
<a name="57" href="#57">57</a>      {
<a name="58" href="#58">58</a>          ProtocolCodecFactory codec;
<a name="59" href="#59">59</a>          <strong>if</strong>( useCustomCodec )
<a name="60" href="#60">60</a>          {
<a name="61" href="#61">61</a>              codec = <strong>new</strong> <a href="../../../../../org/apache/mina/examples/sumup/codec/SumUpProtocolCodecFactory.html">SumUpProtocolCodecFactory</a>( false );
<a name="62" href="#62">62</a>          }
<a name="63" href="#63">63</a>          <strong>else</strong>
<a name="64" href="#64">64</a>          {
<a name="65" href="#65">65</a>              codec = <strong>new</strong> ObjectSerializationCodecFactory();
<a name="66" href="#66">66</a>          }
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>          session.getFilterChain().addLast(
<a name="69" href="#69">69</a>                  <span class="string">"protocolFilter"</span>, <strong>new</strong> ProtocolCodecFilter( codec ) );
<a name="70" href="#70">70</a>          session.getFilterChain().addLast(
<a name="71" href="#71">71</a>                  <span class="string">"logger"</span>, <strong>new</strong> LoggingFilter() );
<a name="72" href="#72">72</a>      }
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong>public</strong> <strong>void</strong> sessionOpened( IoSession session )
<a name="75" href="#75">75</a>      {
<a name="76" href="#76">76</a>          <em class="comment">// send summation requests</em>
<a name="77" href="#77">77</a>          <strong>for</strong>( <strong>int</strong> i = 0; i &lt; values.length; i++ )
<a name="78" href="#78">78</a>          {
<a name="79" href="#79">79</a>              <a href="../../../../../org/apache/mina/examples/sumup/message/AddMessage.html">AddMessage</a> m = <strong>new</strong> <a href="../../../../../org/apache/mina/examples/sumup/message/AddMessage.html">AddMessage</a>();
<a name="80" href="#80">80</a>              m.setSequence( i );
<a name="81" href="#81">81</a>              m.setValue( values[ i ] );
<a name="82" href="#82">82</a>              session.write( m );
<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>public</strong> <strong>void</strong> messageReceived( IoSession session, Object message )
<a name="87" href="#87">87</a>      {
<a name="88" href="#88">88</a>          <em class="comment">// server only sends ResultMessage. otherwise, we will have to identify</em>
<a name="89" href="#89">89</a>          <em class="comment">// its type using instanceof operator.</em>
<a name="90" href="#90">90</a>          <a href="../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a> rm = ( ResultMessage ) message;
<a name="91" href="#91">91</a>          <strong>if</strong>( rm.isOk() )
<a name="92" href="#92">92</a>          {
<a name="93" href="#93">93</a>              <em class="comment">// server returned OK code.</em>
<a name="94" href="#94">94</a>              <em class="comment">// if received the result message which has the last sequence</em>
<a name="95" href="#95">95</a>              <em class="comment">// number,</em>
<a name="96" href="#96">96</a>              <em class="comment">// it is time to disconnect.</em>
<a name="97" href="#97">97</a>              <strong>if</strong>( rm.getSequence() == values.length - 1 )
<a name="98" href="#98">98</a>              {
<a name="99" href="#99">99</a>                  <em class="comment">// print the sum and disconnect.</em>
<a name="100" href="#100">100</a>                 SessionLog.info( session, <span class="string">"The sum: "</span> + rm.getValue() );
<a name="101" href="#101">101</a>                 session.close();
<a name="102" href="#102">102</a>                 finished = <strong>true</strong>;
<a name="103" href="#103">103</a>             }
<a name="104" href="#104">104</a>         }
<a name="105" href="#105">105</a>         <strong>else</strong>
<a name="106" href="#106">106</a>         {
<a name="107" href="#107">107</a>             <em class="comment">// seever returned error code because of overflow, etc.</em>
<a name="108" href="#108">108</a>             SessionLog.warn( session, <span class="string">"Server error, disconnecting..."</span> );
<a name="109" href="#109">109</a>             session.close();
<a name="110" href="#110">110</a>             finished = <strong>true</strong>;
<a name="111" href="#111">111</a>         }
<a name="112" href="#112">112</a>     }
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>     <strong>public</strong> <strong>void</strong> exceptionCaught( IoSession session, Throwable cause )
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         session.close();
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

