<!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>IoSessionManager xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/common/IoSessionManager.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: IoSessionManager.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/common/package-summary.html">org.apache.mina.common</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <em>/**<em>*</em></em>
<a name="23" href="#23">23</a>  <em> * Base interface for all acceptors and connectors that manage</em>
<a name="24" href="#24">24</a>  <em> * sessions.</em>
<a name="25" href="#25">25</a>  <em> * </em>
<a name="26" href="#26">26</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="27" href="#27">27</a>  <em> * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $</em>
<a name="28" href="#28">28</a>  <em> */</em>
<a name="29" href="#29">29</a>  <strong>public</strong> <strong>interface</strong> <a href="../../../../org/apache/mina/common/IoSessionManager.html">IoSessionManager</a> {
<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>     * Returns the {@link IoFilterChainBuilder} which will modify the</em>
<a name="33" href="#33">33</a>  <em>     * {@link IoFilterChain} of all {@link IoSession}s which is managed</em>
<a name="34" href="#34">34</a>  <em>     * by this manager.</em>
<a name="35" href="#35">35</a>  <em>     * The default value is an empty {@link DefaultIoFilterChainBuilder}.</em>
<a name="36" href="#36">36</a>  <em>     */</em>
<a name="37" href="#37">37</a>      <a href="../../../../org/apache/mina/common/IoFilterChainBuilder.html">IoFilterChainBuilder</a> getFilterChainBuilder();
<a name="38" href="#38">38</a>      
<a name="39" href="#39">39</a>      <em>/**<em>*</em></em>
<a name="40" href="#40">40</a>  <em>     * Sets the {@link IoFilterChainBuilder} which will modify the</em>
<a name="41" href="#41">41</a>  <em>     * {@link IoFilterChain} of all {@link IoSession}s which is managed</em>
<a name="42" href="#42">42</a>  <em>     * by this manager.</em>
<a name="43" href="#43">43</a>  <em>     * If you specify &lt;tt>null&lt;/tt> this property will be set to</em>
<a name="44" href="#44">44</a>  <em>     * an empty {@link DefaultIoFilterChainBuilder}.</em>
<a name="45" href="#45">45</a>  <em>     */</em>
<a name="46" href="#46">46</a>      <strong>void</strong> setFilterChainBuilder( IoFilterChainBuilder builder );
<a name="47" href="#47">47</a>      
<a name="48" href="#48">48</a>      <em>/**<em>*</em></em>
<a name="49" href="#49">49</a>  <em>     * A shortcut for &lt;tt>( ( DefaultIoFilterChainBuilder ) &lt;/tt>{@link #getFilterChainBuilder()}&lt;tt> )&lt;/tt>.</em>
<a name="50" href="#50">50</a>  <em>     * Please note that the returned object is not a &lt;b>real&lt;/b> {@link IoFilterChain}</em>
<a name="51" href="#51">51</a>  <em>     * but a {@link DefaultIoFilterChainBuilder}.  Modifying the returned builder</em>
<a name="52" href="#52">52</a>  <em>     * won't affect the existing {@link IoSession}s at all, because</em>
<a name="53" href="#53">53</a>  <em>     * {@link IoFilterChainBuilder}s affect only newly created {@link IoSession}s.</em>
<a name="54" href="#54">54</a>  <em>     *</em>
<a name="55" href="#55">55</a>  <em>     * @throws IllegalStateException if the current {@link IoFilterChainBuilder} is</em>
<a name="56" href="#56">56</a>  <em>     *                               not a {@link DefaultIoFilterChainBuilder}</em>
<a name="57" href="#57">57</a>  <em>     */</em>
<a name="58" href="#58">58</a>      <a href="../../../../org/apache/mina/common/DefaultIoFilterChainBuilder.html">DefaultIoFilterChainBuilder</a> getFilterChain();
<a name="59" href="#59">59</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

