<!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 327113 2005-10-21 06:59:15Z 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 The Apache Directory Project (dev@directory.apache.org)</em>
<a name="34" href="#34">34</a>  <em> * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +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 this session is created.</em>
<a name="144" href="#144">144</a> <em>     */</em>
<a name="145" href="#145">145</a>     <strong>long</strong> getCreationTime();
<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 I/O occurred lastly.</em>
<a name="149" href="#149">149</a> <em>     */</em>
<a name="150" href="#150">150</a>     <strong>long</strong> getLastIoTime();
<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 read operation occurred lastly.</em>
<a name="154" href="#154">154</a> <em>     */</em>
<a name="155" href="#155">155</a>     <strong>long</strong> getLastReadTime();
<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 the time in millis when write operation occurred lastly.</em>
<a name="159" href="#159">159</a> <em>     */</em>
<a name="160" href="#160">160</a>     <strong>long</strong> getLastWriteTime();
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <em>/**<em>*</em></em>
<a name="163" href="#163">163</a> <em>     * Returns &lt;code>true&lt;/code> if this session is idle for the specified </em>
<a name="164" href="#164">164</a> <em>     * {@link IdleStatus}.</em>
<a name="165" href="#165">165</a> <em>     */</em>
<a name="166" href="#166">166</a>     <strong>boolean</strong> isIdle( IdleStatus status );
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <em>/**<em>*</em></em>
<a name="169" href="#169">169</a> <em>     * Returns the number of the fired continuous &lt;tt>sessionIdle&lt;/tt> events</em>
<a name="170" href="#170">170</a> <em>     * for the specified {@link IdleStatus}.</em>
<a name="171" href="#171">171</a> <em>     * &lt;p></em>
<a name="172" href="#172">172</a> <em>     * If &lt;tt>sessionIdle&lt;/tt> event is fired first after some time after I/O,</em>
<a name="173" href="#173">173</a> <em>     * &lt;tt>idleCount&lt;/tt> becomes &lt;tt>1&lt;/tt>.  &lt;tt>idleCount&lt;/tt> resets to</em>
<a name="174" href="#174">174</a> <em>     * &lt;tt>0&lt;/tt> if any I/O occurs again, otherwise it increases to</em>
<a name="175" href="#175">175</a> <em>     * &lt;tt>2&lt;/tt> and so on if &lt;tt>sessionIdle&lt;/tt> event is fired again without</em>
<a name="176" href="#176">176</a> <em>     * any I/O between two (or more) &lt;tt>sessionIdle&lt;/tt> events.</em>
<a name="177" href="#177">177</a> <em>     */</em>
<a name="178" href="#178">178</a>     <strong>int</strong> getIdleCount( IdleStatus status );
<a name="179" href="#179">179</a>     
<a name="180" href="#180">180</a>     <em>/**<em>*</em></em>
<a name="181" href="#181">181</a> <em>     * Returns the time in millis when the last &lt;tt>sessionIdle&lt;/tt> event</em>
<a name="182" href="#182">182</a> <em>     * is fired for the specified {@link IdleStatus}.</em>
<a name="183" href="#183">183</a> <em>     */</em>
<a name="184" href="#184">184</a>     <strong>long</strong> getLastIdleTime( IdleStatus status );
<a name="185" href="#185">185</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

