<!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>EchoProtocolHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/echoserver/EchoProtocolHandler.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: EchoProtocolHandler.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/echoserver/package-summary.html">org.apache.mina.examples.echoserver</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.common.IdleStatus;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.common.SessionConfig;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.io.IoHandler;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.io.IoHandlerAdapter;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.io.socket.SocketSessionConfig;
<a name="28" href="#28">28</a>  <strong>import</strong> org.slf4j.Logger;
<a name="29" href="#29">29</a>  <strong>import</strong> org.slf4j.LoggerFactory;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em>/**<em>*</em></em>
<a name="32" href="#32">32</a>  <em> * {@link IoHandler} implementation for echo server. </em>
<a name="33" href="#33">33</a>  <em> * </em>
<a name="34" href="#34">34</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="35" href="#35">35</a>  <em> * @version $Rev: 357871 $, $Date: 2005-12-20 10:56:40 +0900 (Tue, 20 Dec 2005) $,</em>
<a name="36" href="#36">36</a>  <em> */</em>
<a name="37" href="#37">37</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/echoserver/EchoProtocolHandler.html">EchoProtocolHandler</a> <strong>extends</strong> IoHandlerAdapter
<a name="38" href="#38">38</a>  {
<a name="39" href="#39">39</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> Logger log = LoggerFactory.getLogger( EchoProtocolHandler.<strong>class</strong> );
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>      <strong>public</strong> <strong>void</strong> sessionCreated( IoSession session )
<a name="42" href="#42">42</a>      {
<a name="43" href="#43">43</a>          SessionConfig cfg = session.getConfig();
<a name="44" href="#44">44</a>          <strong>if</strong>( cfg instanceof SocketSessionConfig )
<a name="45" href="#45">45</a>          {
<a name="46" href="#46">46</a>              ( ( SocketSessionConfig ) cfg ).setSessionReceiveBufferSize( 2048 );
<a name="47" href="#47">47</a>          }
<a name="48" href="#48">48</a>          
<a name="49" href="#49">49</a>          cfg.setIdleTime( IdleStatus.BOTH_IDLE, 10 );
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong>public</strong> <strong>void</strong> sessionIdle( IoSession session, IdleStatus status )
<a name="53" href="#53">53</a>      {
<a name="54" href="#54">54</a>          log.info(
<a name="55" href="#55">55</a>                  <span class="string">"*** IDLE #"</span> +
<a name="56" href="#56">56</a>                  session.getIdleCount( IdleStatus.BOTH_IDLE ) +
<a name="57" href="#57">57</a>                  <span class="string">" ***"</span> );
<a name="58" href="#58">58</a>      }
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong>public</strong> <strong>void</strong> exceptionCaught( IoSession session, Throwable cause )
<a name="61" href="#61">61</a>      {
<a name="62" href="#62">62</a>          session.close();
<a name="63" href="#63">63</a>      }
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>      <strong>public</strong> <strong>void</strong> dataRead( IoSession session, ByteBuffer rb )
<a name="66" href="#66">66</a>      {
<a name="67" href="#67">67</a>          <em class="comment">// Write the received data back to remote peer</em>
<a name="68" href="#68">68</a>          ByteBuffer wb = ByteBuffer.allocate( rb.remaining() );
<a name="69" href="#69">69</a>          wb.put( rb );
<a name="70" href="#70">70</a>          wb.flip();
<a name="71" href="#71">71</a>          session.write( wb, <strong>null</strong> );
<a name="72" href="#72">72</a>      }
<a name="73" href="#73">73</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

