<!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>VmPipeSession xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/vmpipe/VmPipeSession.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: VmPipeSession.java 165586 2005-05-02 06:27:27Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> */</em>
<a name="4" href="#4">4</a>   <strong>package</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/package-summary.html">org.apache.mina.protocol.vmpipe</a>;
<a name="5" href="#5">5</a>   
<a name="6" href="#6">6</a>   <strong>import</strong> java.io.IOException;
<a name="7" href="#7">7</a>   <strong>import</strong> java.net.SocketAddress;
<a name="8" href="#8">8</a>   
<a name="9" href="#9">9</a>   <strong>import</strong> org.apache.mina.common.BaseSession;
<a name="10" href="#10">10</a>  <strong>import</strong> org.apache.mina.common.SessionConfig;
<a name="11" href="#11">11</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="12" href="#12">12</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolDecoder;
<a name="13" href="#13">13</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolEncoder;
<a name="14" href="#14">14</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolFilterChain;
<a name="15" href="#15">15</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolHandler;
<a name="16" href="#16">16</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="17" href="#17">17</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSessionFilterChain;
<a name="18" href="#18">18</a>  <strong>import</strong> org.apache.mina.protocol.vmpipe.VmPipeAcceptor.Entry;
<a name="19" href="#19">19</a>  <strong>import</strong> org.apache.mina.util.ExceptionUtil;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <em>/**<em>*</em></em>
<a name="22" href="#22">22</a>  <em> * A {@link ProtocolSession} for in-VM transport (VM_PIPE).</em>
<a name="23" href="#23">23</a>  <em> * </em>
<a name="24" href="#24">24</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="25" href="#25">25</a>  <em> * @version $Rev: 165586 $, $Date: 2005-05-02 15:27:27 +0900 (?, 02  5? 2005) $</em>
<a name="26" href="#26">26</a>  <em> */</em>
<a name="27" href="#27">27</a>  <strong>class</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/common/BaseSession.html">BaseSession</a> implements <a href="../../../../../org/apache/mina/protocol/ProtocolSession.html">ProtocolSession</a>
<a name="28" href="#28">28</a>  {
<a name="29" href="#29">29</a>      <strong>private</strong> <strong>final</strong> SocketAddress localAddress;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>      <strong>private</strong> <strong>final</strong> SocketAddress remoteAddress;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolHandler.html">ProtocolHandler</a> handler;
<a name="34" href="#34">34</a>      
<a name="35" href="#35">35</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSessionConfig.html">VmPipeSessionConfig</a> config = <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSessionConfig.html">VmPipeSessionConfig</a>();
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolSessionFilterChain.html">ProtocolSessionFilterChain</a> filterChain;
<a name="38" href="#38">38</a>      
<a name="39" href="#39">39</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSessionManagerFilterChain.html">VmPipeSessionManagerFilterChain</a> managerFilterChain;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>      <strong>final</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a> remoteSession;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong>final</strong> Object lock;
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <strong>boolean</strong> closed;
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <em>/**<em>*</em></em>
<a name="48" href="#48">48</a>  <em>     * Constructor for client-side session.</em>
<a name="49" href="#49">49</a>  <em>     */</em>
<a name="50" href="#50">50</a>      <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a>( Object lock, SocketAddress localAddress,
<a name="51" href="#51">51</a>                     <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSessionManagerFilterChain.html">VmPipeSessionManagerFilterChain</a> managerFilterChain,
<a name="52" href="#52">52</a>                     <a href="../../../../../org/apache/mina/protocol/ProtocolHandler.html">ProtocolHandler</a> handler,
<a name="53" href="#53">53</a>                     Entry remoteEntry ) throws IOException
<a name="54" href="#54">54</a>      {
<a name="55" href="#55">55</a>          <strong>this</strong>.lock = lock;
<a name="56" href="#56">56</a>          <strong>this</strong>.localAddress = localAddress;
<a name="57" href="#57">57</a>          <strong>this</strong>.remoteAddress = remoteEntry.address;
<a name="58" href="#58">58</a>          <strong>this</strong>.handler = handler;
<a name="59" href="#59">59</a>          <strong>this</strong>.filterChain = <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolSessionFilterChain.html">ProtocolSessionFilterChain</a>( managerFilterChain );
<a name="60" href="#60">60</a>          <strong>this</strong>.managerFilterChain = managerFilterChain;
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>          remoteSession = <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a>( <strong>this</strong>, remoteEntry );
<a name="63" href="#63">63</a>          
<a name="64" href="#64">64</a>          <em class="comment">// initialize remote session</em>
<a name="65" href="#65">65</a>          <strong>try</strong>
<a name="66" href="#66">66</a>          {
<a name="67" href="#67">67</a>              remoteEntry.handler.sessionCreated( remoteSession );
<a name="68" href="#68">68</a>          }
<a name="69" href="#69">69</a>          <strong>catch</strong>( Throwable t )
<a name="70" href="#70">70</a>          {
<a name="71" href="#71">71</a>              remoteEntry.acceptor.getExceptionMonitor().exceptionCaught( remoteEntry.acceptor, t );
<a name="72" href="#72">72</a>              IOException e = <strong>new</strong> IOException( <span class="string">"Failed to initialize remote session."</span> );
<a name="73" href="#73">73</a>              e.initCause( t );
<a name="74" href="#74">74</a>              <strong>throw</strong> e;
<a name="75" href="#75">75</a>          }
<a name="76" href="#76">76</a>          
<a name="77" href="#77">77</a>          <em class="comment">// initialize client session</em>
<a name="78" href="#78">78</a>          <strong>try</strong>
<a name="79" href="#79">79</a>          {
<a name="80" href="#80">80</a>              handler.sessionCreated( <strong>this</strong> );
<a name="81" href="#81">81</a>          }
<a name="82" href="#82">82</a>          <strong>catch</strong>( Throwable t )
<a name="83" href="#83">83</a>          {
<a name="84" href="#84">84</a>              ExceptionUtil.throwException( t );
<a name="85" href="#85">85</a>          }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          remoteEntry.managerFilterChain.sessionOpened( remoteSession );
<a name="88" href="#88">88</a>          managerFilterChain.sessionOpened( <strong>this</strong> );
<a name="89" href="#89">89</a>      }
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <em>/**<em>*</em></em>
<a name="92" href="#92">92</a>  <em>     * Constructor for server-side session.</em>
<a name="93" href="#93">93</a>  <em>     */</em>
<a name="94" href="#94">94</a>      <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSession.html">VmPipeSession</a>( VmPipeSession remoteSession, Entry entry )
<a name="95" href="#95">95</a>      {
<a name="96" href="#96">96</a>          <strong>this</strong>.lock = remoteSession.lock;
<a name="97" href="#97">97</a>          <strong>this</strong>.localAddress = remoteSession.remoteAddress;
<a name="98" href="#98">98</a>          <strong>this</strong>.remoteAddress = remoteSession.localAddress;
<a name="99" href="#99">99</a>          <strong>this</strong>.handler = entry.handler;
<a name="100" href="#100">100</a>         <strong>this</strong>.managerFilterChain = entry.managerFilterChain;
<a name="101" href="#101">101</a>         <strong>this</strong>.filterChain = <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolSessionFilterChain.html">ProtocolSessionFilterChain</a>( entry.managerFilterChain );
<a name="102" href="#102">102</a>         <strong>this</strong>.remoteSession = remoteSession;
<a name="103" href="#103">103</a>     }
<a name="104" href="#104">104</a>     
<a name="105" href="#105">105</a>     <a href="../../../../../org/apache/mina/protocol/vmpipe/VmPipeSessionManagerFilterChain.html">VmPipeSessionManagerFilterChain</a> getManagerFilterChain()
<a name="106" href="#106">106</a>     {
<a name="107" href="#107">107</a>         <strong>return</strong> managerFilterChain;
<a name="108" href="#108">108</a>     }
<a name="109" href="#109">109</a>     
<a name="110" href="#110">110</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolFilterChain.html">ProtocolFilterChain</a> getFilterChain()
<a name="111" href="#111">111</a>     {
<a name="112" href="#112">112</a>         <strong>return</strong> filterChain;
<a name="113" href="#113">113</a>     }
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolHandler.html">ProtocolHandler</a> getHandler()
<a name="116" href="#116">116</a>     {
<a name="117" href="#117">117</a>         <strong>return</strong> handler;
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolEncoder.html">ProtocolEncoder</a> getEncoder()
<a name="121" href="#121">121</a>     {
<a name="122" href="#122">122</a>         <strong>return</strong> <strong>null</strong>;
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolDecoder.html">ProtocolDecoder</a> getDecoder()
<a name="126" href="#126">126</a>     {
<a name="127" href="#127">127</a>         <strong>return</strong> <strong>null</strong>;
<a name="128" href="#128">128</a>     }
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <strong>public</strong> <strong>void</strong> close( <strong>boolean</strong> wait )
<a name="131" href="#131">131</a>     {
<a name="132" href="#132">132</a>         <strong>synchronized</strong>( lock )
<a name="133" href="#133">133</a>         {
<a name="134" href="#134">134</a>             <strong>if</strong>( closed )
<a name="135" href="#135">135</a>                 <strong>return</strong>;
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>             closed = remoteSession.closed = <strong>true</strong>;
<a name="138" href="#138">138</a>             managerFilterChain.sessionClosed( <strong>this</strong> );
<a name="139" href="#139">139</a>             remoteSession.getManagerFilterChain().sessionClosed( remoteSession );
<a name="140" href="#140">140</a>         }
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <strong>public</strong> <strong>void</strong> write( Object message )
<a name="144" href="#144">144</a>     {
<a name="145" href="#145">145</a>         <strong>this</strong>.filterChain.filterWrite( <strong>this</strong>, message );
<a name="146" href="#146">146</a>     }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/common/TransportType.html">TransportType</a> getTransportType()
<a name="149" href="#149">149</a>     {
<a name="150" href="#150">150</a>         <strong>return</strong> TransportType.VM_PIPE;
<a name="151" href="#151">151</a>     }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>     <strong>public</strong> <strong>boolean</strong> isConnected()
<a name="154" href="#154">154</a>     {
<a name="155" href="#155">155</a>         <strong>return</strong> !closed;
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <strong>public</strong> <a href="../../../../../org/apache/mina/common/SessionConfig.html">SessionConfig</a> getConfig()
<a name="159" href="#159">159</a>     {
<a name="160" href="#160">160</a>         <strong>return</strong> config;
<a name="161" href="#161">161</a>     }
<a name="162" href="#162">162</a> 
<a name="163" href="#163">163</a>     <strong>public</strong> SocketAddress getRemoteAddress()
<a name="164" href="#164">164</a>     {
<a name="165" href="#165">165</a>         <strong>return</strong> remoteAddress;
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <strong>public</strong> SocketAddress getLocalAddress()
<a name="169" href="#169">169</a>     {
<a name="170" href="#170">170</a>         <strong>return</strong> localAddress;
<a name="171" href="#171">171</a>     }
<a name="172" href="#172">172</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

