<!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>Session xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/common/Session.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: Session.java 264677 2005-08-30 02:44:35Z 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>  <strong>import</strong> java.net.SocketAddress;
<a name="22" href="#22">22</a>  <strong>import</strong> java.util.Set;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <em>/**<em>*</em></em>
<a name="25" href="#25">25</a>  <em> * A handle which represents connection between two endpoints regardless of </em>
<a name="26" href="#26">26</a>  <em> * transport types.</em>
<a name="27" href="#27">27</a>  <em> * &lt;p></em>
<a name="28" href="#28">28</a>  <em> * Session provides user-defined attributes.  User-defined attributes are</em>
<a name="29" href="#29">29</a>  <em> * application-specific data which is associated with a session.</em>
<a name="30" href="#30">30</a>  <em> * It often contains objects that represents the state of a higher-level protocol</em>
<a name="31" href="#31">31</a>  <em> * and becomes a way to exchange data between filters and handlers.</em>
<a name="32" href="#32">32</a>  <em> *   </em>
<a name="33" href="#33">33</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="34" href="#34">34</a>  <em> * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $</em>
<a name="35" href="#35">35</a>  <em> */</em>
<a name="36" href="#36">36</a>  <strong>public</strong> <strong>interface</strong> <a href="../../../../org/apache/mina/common/Session.html">Session</a> {
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <em>/**<em>*</em></em>
<a name="39" href="#39">39</a>  <em>     * Closes this session immediately.  Calling method is identical with</em>
<a name="40" href="#40">40</a>  <em>     * calling &lt;tt>close( false )&lt;/tt>.</em>
<a name="41" href="#41">41</a>  <em>     */</em>
<a name="42" href="#42">42</a>      <strong>void</strong> close();
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <em>/**<em>*</em></em>
<a name="45" href="#45">45</a>  <em>     * Closes this session immediately.</em>
<a name="46" href="#46">46</a>  <em>     * </em>
<a name="47" href="#47">47</a>  <em>     * @param wait &lt;tt>true&lt;/tt> if you want to wait until closing process is</em>
<a name="48" href="#48">48</a>  <em>     *             complete.</em>
<a name="49" href="#49">49</a>  <em>     */</em>
<a name="50" href="#50">50</a>      <strong>void</strong> close( <strong>boolean</strong> wait );
<a name="51" href="#51">51</a>      
<a name="52" href="#52">52</a>      <em>/**<em>*</em></em>
<a name="53" href="#53">53</a>  <em>     * Returns an attachment of this session.</em>
<a name="54" href="#54">54</a>  <em>     * This method is identical with &lt;tt>getAttribute( "" )&lt;/tt>.</em>
<a name="55" href="#55">55</a>  <em>     */</em>
<a name="56" href="#56">56</a>      Object getAttachment();
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <em>/**<em>*</em></em>
<a name="59" href="#59">59</a>  <em>     * Sets an attachment of this session.</em>
<a name="60" href="#60">60</a>  <em>     * This method is identical with &lt;tt>setAttribute( "", attachment )&lt;/tt>.</em>
<a name="61" href="#61">61</a>  <em>     * </em>
<a name="62" href="#62">62</a>  <em>     * @return Old attachment.  &lt;tt>null&lt;/tt> if it is new.</em>
<a name="63" href="#63">63</a>  <em>     */</em>
<a name="64" href="#64">64</a>      Object setAttachment( Object attachment );
<a name="65" href="#65">65</a>      
<a name="66" href="#66">66</a>      <em>/**<em>*</em></em>
<a name="67" href="#67">67</a>  <em>     * Returns the value of user-defined attribute of this session.</em>
<a name="68" href="#68">68</a>  <em>     * </em>
<a name="69" href="#69">69</a>  <em>     * @param key the key of the attribute</em>
<a name="70" href="#70">70</a>  <em>     * @return &lt;tt>null&lt;/tt> if there is no attribute with the specified key</em>
<a name="71" href="#71">71</a>  <em>     */</em>
<a name="72" href="#72">72</a>      Object getAttribute( String key );
<a name="73" href="#73">73</a>      
<a name="74" href="#74">74</a>      <em>/**<em>*</em></em>
<a name="75" href="#75">75</a>  <em>     * Sets a user-defined attribute.</em>
<a name="76" href="#76">76</a>  <em>     * </em>
<a name="77" href="#77">77</a>  <em>     * @param key the key of the attribute</em>
<a name="78" href="#78">78</a>  <em>     * @param value the value of the attribute</em>
<a name="79" href="#79">79</a>  <em>     * @return The old value of the attribute.  &lt;tt>null&lt;/tt> if it is new.</em>
<a name="80" href="#80">80</a>  <em>     */</em>
<a name="81" href="#81">81</a>      Object setAttribute( String key, Object value );
<a name="82" href="#82">82</a>      
<a name="83" href="#83">83</a>      <em>/**<em>*</em></em>
<a name="84" href="#84">84</a>  <em>     * Removes a user-defined attribute with the specified key.</em>
<a name="85" href="#85">85</a>  <em>     * </em>
<a name="86" href="#86">86</a>  <em>     * @return The old value of the attribute.  &lt;tt>null&lt;/tt> if not found.</em>
<a name="87" href="#87">87</a>  <em>     */</em>
<a name="88" href="#88">88</a>      Object removeAttribute( String key );
<a name="89" href="#89">89</a>      
<a name="90" href="#90">90</a>      <em>/**<em>*</em></em>
<a name="91" href="#91">91</a>  <em>     * Returns the set of keys of all user-defined attributes.</em>
<a name="92" href="#92">92</a>  <em>     */</em>
<a name="93" href="#93">93</a>      Set getAttributeKeys();
<a name="94" href="#94">94</a>      
<a name="95" href="#95">95</a>      <em>/**<em>*</em></em>
<a name="96" href="#96">96</a>  <em>     * Returns transport type of this session.</em>
<a name="97" href="#97">97</a>  <em>     */</em>
<a name="98" href="#98">98</a>      <a href="../../../../org/apache/mina/common/TransportType.html">TransportType</a> getTransportType();
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <em>/**<em>*</em></em>
<a name="101" href="#101">101</a> <em>     * Returns &lt;code>true&lt;/code> if this session is connected with remote peer.</em>
<a name="102" href="#102">102</a> <em>     */</em>
<a name="103" href="#103">103</a>     <strong>boolean</strong> isConnected();
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     <em>/**<em>*</em></em>
<a name="106" href="#106">106</a> <em>     * Returns the configuration of this session.</em>
<a name="107" href="#107">107</a> <em>     */</em>
<a name="108" href="#108">108</a>     <a href="../../../../org/apache/mina/common/SessionConfig.html">SessionConfig</a> getConfig();
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>     <em>/**<em>*</em></em>
<a name="111" href="#111">111</a> <em>     * Returns the socket address of remote peer. </em>
<a name="112" href="#112">112</a> <em>     */</em>
<a name="113" href="#113">113</a>     SocketAddress getRemoteAddress();
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <em>/**<em>*</em></em>
<a name="116" href="#116">116</a> <em>     * Returns the socket address of local machine which is associated with this</em>
<a name="117" href="#117">117</a> <em>     * session.</em>
<a name="118" href="#118">118</a> <em>     */</em>
<a name="119" href="#119">119</a>     SocketAddress getLocalAddress();
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <em>/**<em>*</em></em>
<a name="122" href="#122">122</a> <em>     * Returns the total number of bytes which were read from this session.</em>
<a name="123" href="#123">123</a> <em>     */</em>
<a name="124" href="#124">124</a>     <strong>long</strong> getReadBytes();
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <em>/**<em>*</em></em>
<a name="127" href="#127">127</a> <em>     * Returns the total number of bytes which were written to this session.</em>
<a name="128" href="#128">128</a> <em>     */</em>
<a name="129" href="#129">129</a>     <strong>long</strong> getWrittenBytes();
<a name="130" href="#130">130</a> 
<a name="131" href="#131">131</a>     <em>/**<em>*</em></em>
<a name="132" href="#132">132</a> <em>     * Returns the total number of write requests which were written to this session.</em>
<a name="133" href="#133">133</a> <em>     */</em>
<a name="134" href="#134">134</a>     <strong>long</strong> getWrittenWriteRequests();
<a name="135" href="#135">135</a>     
<a name="136" href="#136">136</a>     <em>/**<em>*</em></em>
<a name="137" href="#137">137</a> <em>     * Returns the number of write requests which are scheduled to be written</em>
<a name="138" href="#138">138</a> <em>     * to this session.</em>
<a name="139" href="#139">139</a> <em>     */</em>
<a name="140" href="#140">140</a>     <strong>int</strong> getScheduledWriteRequests();
<a name="141" href="#141">141</a> 
<a name="142" href="#142">142</a>     <em>/**<em>*</em></em>
<a name="143" href="#143">143</a> <em>     * Returns the time in millis when I/O occurred lastly.</em>
<a name="144" href="#144">144</a> <em>     */</em>
<a name="145" href="#145">145</a>     <strong>long</strong> getLastIoTime();
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>     <em>/**<em>*</em></em>
<a name="148" href="#148">148</a> <em>     * Returns the time in millis when read operation occurred lastly.</em>
<a name="149" href="#149">149</a> <em>     */</em>
<a name="150" href="#150">150</a>     <strong>long</strong> getLastReadTime();
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <em>/**<em>*</em></em>
<a name="153" href="#153">153</a> <em>     * Returns the time in millis when write operation occurred lastly.</em>
<a name="154" href="#154">154</a> <em>     */</em>
<a name="155" href="#155">155</a>     <strong>long</strong> getLastWriteTime();
<a name="156" href="#156">156</a> 
<a name="157" href="#157">157</a>     <em>/**<em>*</em></em>
<a name="158" href="#158">158</a> <em>     * Returns &lt;code>true&lt;/code> if this session is idle for the specified </em>
<a name="159" href="#159">159</a> <em>     * {@link IdleStatus}.</em>
<a name="160" href="#160">160</a> <em>     */</em>
<a name="161" href="#161">161</a>     <strong>boolean</strong> isIdle( IdleStatus status );
<a name="162" href="#162">162</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

