<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> *  Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
<span class="sourceLineNo">003</span> *  or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
<span class="sourceLineNo">004</span> *  distributed with this work for additional information<a name="line.4"></a>
<span class="sourceLineNo">005</span> *  regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
<span class="sourceLineNo">006</span> *  to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
<span class="sourceLineNo">007</span> *  "License"); you may not use this file except in compliance<a name="line.7"></a>
<span class="sourceLineNo">008</span> *  with the License.  You may obtain a copy of the License at<a name="line.8"></a>
<span class="sourceLineNo">009</span> *<a name="line.9"></a>
<span class="sourceLineNo">010</span> *    http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
<span class="sourceLineNo">011</span> *<a name="line.11"></a>
<span class="sourceLineNo">012</span> *  Unless required by applicable law or agreed to in writing,<a name="line.12"></a>
<span class="sourceLineNo">013</span> *  software distributed under the License is distributed on an<a name="line.13"></a>
<span class="sourceLineNo">014</span> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY<a name="line.14"></a>
<span class="sourceLineNo">015</span> *  KIND, either express or implied.  See the License for the<a name="line.15"></a>
<span class="sourceLineNo">016</span> *  specific language governing permissions and limitations<a name="line.16"></a>
<span class="sourceLineNo">017</span> *  under the License.<a name="line.17"></a>
<span class="sourceLineNo">018</span> *<a name="line.18"></a>
<span class="sourceLineNo">019</span> */<a name="line.19"></a>
<span class="sourceLineNo">020</span>package org.apache.mina.core.filterchain;<a name="line.20"></a>
<span class="sourceLineNo">021</span><a name="line.21"></a>
<span class="sourceLineNo">022</span>import org.apache.mina.core.service.IoHandler;<a name="line.22"></a>
<span class="sourceLineNo">023</span>import org.apache.mina.core.session.IdleStatus;<a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.apache.mina.core.session.IoSession;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.apache.mina.core.write.WriteRequest;<a name="line.25"></a>
<span class="sourceLineNo">026</span>import org.apache.mina.filter.util.ReferenceCountingFilter;<a name="line.26"></a>
<span class="sourceLineNo">027</span><a name="line.27"></a>
<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
<span class="sourceLineNo">029</span> * A filter which intercepts {@link IoHandler} events like Servlet<a name="line.29"></a>
<span class="sourceLineNo">030</span> * filters.  Filters can be used for these purposes:<a name="line.30"></a>
<span class="sourceLineNo">031</span> * &lt;ul&gt;<a name="line.31"></a>
<span class="sourceLineNo">032</span> *   &lt;li&gt;Event logging,&lt;/li&gt;<a name="line.32"></a>
<span class="sourceLineNo">033</span> *   &lt;li&gt;Performance measurement,&lt;/li&gt;<a name="line.33"></a>
<span class="sourceLineNo">034</span> *   &lt;li&gt;Authorization,&lt;/li&gt;<a name="line.34"></a>
<span class="sourceLineNo">035</span> *   &lt;li&gt;Overload control,&lt;/li&gt;<a name="line.35"></a>
<span class="sourceLineNo">036</span> *   &lt;li&gt;Message transformation (e.g. encryption and decryption, ...),&lt;/li&gt;<a name="line.36"></a>
<span class="sourceLineNo">037</span> *   &lt;li&gt;and many more.&lt;/li&gt;<a name="line.37"></a>
<span class="sourceLineNo">038</span> * &lt;/ul&gt;<a name="line.38"></a>
<span class="sourceLineNo">039</span> * &lt;p&gt;<a name="line.39"></a>
<span class="sourceLineNo">040</span> * &lt;strong&gt;Please NEVER implement your filters to wrap<a name="line.40"></a>
<span class="sourceLineNo">041</span> * {@link IoSession}s.&lt;/strong&gt; Users can cache the reference to the<a name="line.41"></a>
<span class="sourceLineNo">042</span> * session, which might malfunction if any filters are added or removed later.<a name="line.42"></a>
<span class="sourceLineNo">043</span> *<a name="line.43"></a>
<span class="sourceLineNo">044</span> * &lt;h3&gt;The Life Cycle&lt;/h3&gt;<a name="line.44"></a>
<span class="sourceLineNo">045</span> * {@link IoFilter}s are activated only when they are inside {@link IoFilterChain}.<a name="line.45"></a>
<span class="sourceLineNo">046</span> * &lt;p&gt;<a name="line.46"></a>
<span class="sourceLineNo">047</span> * When you add an {@link IoFilter} to an {@link IoFilterChain}:<a name="line.47"></a>
<span class="sourceLineNo">048</span> * &lt;ol&gt;<a name="line.48"></a>
<span class="sourceLineNo">049</span> *   &lt;li&gt;{@link #init()} is invoked by {@link ReferenceCountingFilter} if<a name="line.49"></a>
<span class="sourceLineNo">050</span> *       the filter is added at the first time.&lt;/li&gt;<a name="line.50"></a>
<span class="sourceLineNo">051</span> *   &lt;li&gt;{@link #onPreAdd(IoFilterChain, String, NextFilter)} is invoked to notify<a name="line.51"></a>
<span class="sourceLineNo">052</span> *       that the filter will be added to the chain.&lt;/li&gt;<a name="line.52"></a>
<span class="sourceLineNo">053</span> *   &lt;li&gt;The filter is added to the chain, and all events and I/O requests<a name="line.53"></a>
<span class="sourceLineNo">054</span> *       pass through the filter from now.&lt;/li&gt;<a name="line.54"></a>
<span class="sourceLineNo">055</span> *   &lt;li&gt;{@link #onPostAdd(IoFilterChain, String, NextFilter)} is invoked to notify<a name="line.55"></a>
<span class="sourceLineNo">056</span> *       that the filter is added to the chain.&lt;/li&gt;<a name="line.56"></a>
<span class="sourceLineNo">057</span> *   &lt;li&gt;The filter is removed from the chain if {@link #onPostAdd(IoFilterChain, String, org.apache.mina.core.filterchain.IoFilter.NextFilter)}<a name="line.57"></a>
<span class="sourceLineNo">058</span> *       threw an exception.  {@link #destroy()} is also invoked by<a name="line.58"></a>
<span class="sourceLineNo">059</span> *       {@link ReferenceCountingFilter} if the filter is the last filter which<a name="line.59"></a>
<span class="sourceLineNo">060</span> *       was added to {@link IoFilterChain}s.&lt;/li&gt;<a name="line.60"></a>
<span class="sourceLineNo">061</span> * &lt;/ol&gt;<a name="line.61"></a>
<span class="sourceLineNo">062</span> * &lt;p&gt;<a name="line.62"></a>
<span class="sourceLineNo">063</span> * When you remove an {@link IoFilter} from an {@link IoFilterChain}:<a name="line.63"></a>
<span class="sourceLineNo">064</span> * &lt;ol&gt;<a name="line.64"></a>
<span class="sourceLineNo">065</span> *   &lt;li&gt;{@link #onPreRemove(IoFilterChain, String, NextFilter)} is invoked to<a name="line.65"></a>
<span class="sourceLineNo">066</span> *       notify that the filter will be removed from the chain.&lt;/li&gt;<a name="line.66"></a>
<span class="sourceLineNo">067</span> *   &lt;li&gt;The filter is removed from the chain, and any events and I/O requests<a name="line.67"></a>
<span class="sourceLineNo">068</span> *       don't pass through the filter from now.&lt;/li&gt;<a name="line.68"></a>
<span class="sourceLineNo">069</span> *   &lt;li&gt;{@link #onPostRemove(IoFilterChain, String, NextFilter)} is invoked to<a name="line.69"></a>
<span class="sourceLineNo">070</span> *       notify that the filter is removed from the chain.&lt;/li&gt;<a name="line.70"></a>
<span class="sourceLineNo">071</span> *   &lt;li&gt;{@link #destroy()} is invoked by {@link ReferenceCountingFilter} if<a name="line.71"></a>
<span class="sourceLineNo">072</span> *       the removed filter was the last one.&lt;/li&gt;<a name="line.72"></a>
<span class="sourceLineNo">073</span> * &lt;/ol&gt;<a name="line.73"></a>
<span class="sourceLineNo">074</span> *<a name="line.74"></a>
<span class="sourceLineNo">075</span> * @author &lt;a href="http://mina.apache.org"&gt;Apache MINA Project&lt;/a&gt;<a name="line.75"></a>
<span class="sourceLineNo">076</span> *<a name="line.76"></a>
<span class="sourceLineNo">077</span> * @see IoFilterAdapter<a name="line.77"></a>
<span class="sourceLineNo">078</span> */<a name="line.78"></a>
<span class="sourceLineNo">079</span>public interface IoFilter {<a name="line.79"></a>
<span class="sourceLineNo">080</span>    /**<a name="line.80"></a>
<span class="sourceLineNo">081</span>     * Invoked by {@link ReferenceCountingFilter} when this filter<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * is added to a {@link IoFilterChain} at the first time, so you can<a name="line.82"></a>
<span class="sourceLineNo">083</span>     * initialize shared resources.  Please note that this method is never<a name="line.83"></a>
<span class="sourceLineNo">084</span>     * called if you don't wrap a filter with {@link ReferenceCountingFilter}.<a name="line.84"></a>
<span class="sourceLineNo">085</span>     * <a name="line.85"></a>
<span class="sourceLineNo">086</span>     * @throws Exception If an error occurred while processing the event<a name="line.86"></a>
<span class="sourceLineNo">087</span>     */<a name="line.87"></a>
<span class="sourceLineNo">088</span>    void init() throws Exception;<a name="line.88"></a>
<span class="sourceLineNo">089</span><a name="line.89"></a>
<span class="sourceLineNo">090</span>    /**<a name="line.90"></a>
<span class="sourceLineNo">091</span>     * Invoked by {@link ReferenceCountingFilter} when this filter<a name="line.91"></a>
<span class="sourceLineNo">092</span>     * is not used by any {@link IoFilterChain} anymore, so you can destroy<a name="line.92"></a>
<span class="sourceLineNo">093</span>     * shared resources.  Please note that this method is never called if<a name="line.93"></a>
<span class="sourceLineNo">094</span>     * you don't wrap a filter with {@link ReferenceCountingFilter}.<a name="line.94"></a>
<span class="sourceLineNo">095</span>     * <a name="line.95"></a>
<span class="sourceLineNo">096</span>     * @throws Exception If an error occurred while processing the event<a name="line.96"></a>
<span class="sourceLineNo">097</span>     */<a name="line.97"></a>
<span class="sourceLineNo">098</span>    void destroy() throws Exception;<a name="line.98"></a>
<span class="sourceLineNo">099</span><a name="line.99"></a>
<span class="sourceLineNo">100</span>    /**<a name="line.100"></a>
<span class="sourceLineNo">101</span>     * Invoked before this filter is added to the specified &lt;tt&gt;parent&lt;/tt&gt;.<a name="line.101"></a>
<span class="sourceLineNo">102</span>     * Please note that this method can be invoked more than once if<a name="line.102"></a>
<span class="sourceLineNo">103</span>     * this filter is added to more than one parents.  This method is not<a name="line.103"></a>
<span class="sourceLineNo">104</span>     * invoked before {@link #init()} is invoked.<a name="line.104"></a>
<span class="sourceLineNo">105</span>     *<a name="line.105"></a>
<span class="sourceLineNo">106</span>     * @param parent the parent who called this method<a name="line.106"></a>
<span class="sourceLineNo">107</span>     * @param name the name assigned to this filter<a name="line.107"></a>
<span class="sourceLineNo">108</span>     * @param nextFilter the {@link NextFilter} for this filter.  You can reuse<a name="line.108"></a>
<span class="sourceLineNo">109</span>     *                   this object until this filter is removed from the chain.<a name="line.109"></a>
<span class="sourceLineNo">110</span>     * @throws Exception If an error occurred while processing the event<a name="line.110"></a>
<span class="sourceLineNo">111</span>     */<a name="line.111"></a>
<span class="sourceLineNo">112</span>    void onPreAdd(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception;<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
<span class="sourceLineNo">114</span>    /**<a name="line.114"></a>
<span class="sourceLineNo">115</span>     * Invoked after this filter is added to the specified &lt;tt&gt;parent&lt;/tt&gt;.<a name="line.115"></a>
<span class="sourceLineNo">116</span>     * Please note that this method can be invoked more than once if<a name="line.116"></a>
<span class="sourceLineNo">117</span>     * this filter is added to more than one parents.  This method is not<a name="line.117"></a>
<span class="sourceLineNo">118</span>     * invoked before {@link #init()} is invoked.<a name="line.118"></a>
<span class="sourceLineNo">119</span>     *<a name="line.119"></a>
<span class="sourceLineNo">120</span>     * @param parent the parent who called this method<a name="line.120"></a>
<span class="sourceLineNo">121</span>     * @param name the name assigned to this filter<a name="line.121"></a>
<span class="sourceLineNo">122</span>     * @param nextFilter the {@link NextFilter} for this filter.  You can reuse<a name="line.122"></a>
<span class="sourceLineNo">123</span>     *                   this object until this filter is removed from the chain.<a name="line.123"></a>
<span class="sourceLineNo">124</span>     * @throws Exception If an error occurred while processing the event<a name="line.124"></a>
<span class="sourceLineNo">125</span>     */<a name="line.125"></a>
<span class="sourceLineNo">126</span>    void onPostAdd(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception;<a name="line.126"></a>
<span class="sourceLineNo">127</span><a name="line.127"></a>
<span class="sourceLineNo">128</span>    /**<a name="line.128"></a>
<span class="sourceLineNo">129</span>     * Invoked before this filter is removed from the specified &lt;tt&gt;parent&lt;/tt&gt;.<a name="line.129"></a>
<span class="sourceLineNo">130</span>     * Please note that this method can be invoked more than once if<a name="line.130"></a>
<span class="sourceLineNo">131</span>     * this filter is removed from more than one parents.<a name="line.131"></a>
<span class="sourceLineNo">132</span>     * This method is always invoked before {@link #destroy()} is invoked.<a name="line.132"></a>
<span class="sourceLineNo">133</span>     *<a name="line.133"></a>
<span class="sourceLineNo">134</span>     * @param parent the parent who called this method<a name="line.134"></a>
<span class="sourceLineNo">135</span>     * @param name the name assigned to this filter<a name="line.135"></a>
<span class="sourceLineNo">136</span>     * @param nextFilter the {@link NextFilter} for this filter.  You can reuse<a name="line.136"></a>
<span class="sourceLineNo">137</span>     *                   this object until this filter is removed from the chain.<a name="line.137"></a>
<span class="sourceLineNo">138</span>     * @throws Exception If an error occurred while processing the event<a name="line.138"></a>
<span class="sourceLineNo">139</span>     */<a name="line.139"></a>
<span class="sourceLineNo">140</span>    void onPreRemove(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception;<a name="line.140"></a>
<span class="sourceLineNo">141</span><a name="line.141"></a>
<span class="sourceLineNo">142</span>    /**<a name="line.142"></a>
<span class="sourceLineNo">143</span>     * Invoked after this filter is removed from the specified &lt;tt&gt;parent&lt;/tt&gt;.<a name="line.143"></a>
<span class="sourceLineNo">144</span>     * Please note that this method can be invoked more than once if<a name="line.144"></a>
<span class="sourceLineNo">145</span>     * this filter is removed from more than one parents.<a name="line.145"></a>
<span class="sourceLineNo">146</span>     * This method is always invoked before {@link #destroy()} is invoked.<a name="line.146"></a>
<span class="sourceLineNo">147</span>     *<a name="line.147"></a>
<span class="sourceLineNo">148</span>     * @param parent the parent who called this method<a name="line.148"></a>
<span class="sourceLineNo">149</span>     * @param name the name assigned to this filter<a name="line.149"></a>
<span class="sourceLineNo">150</span>     * @param nextFilter the {@link NextFilter} for this filter.  You can reuse<a name="line.150"></a>
<span class="sourceLineNo">151</span>     *                   this object until this filter is removed from the chain.<a name="line.151"></a>
<span class="sourceLineNo">152</span>     * @throws Exception If an error occurred while processing the event<a name="line.152"></a>
<span class="sourceLineNo">153</span>     */<a name="line.153"></a>
<span class="sourceLineNo">154</span>    void onPostRemove(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception;<a name="line.154"></a>
<span class="sourceLineNo">155</span><a name="line.155"></a>
<span class="sourceLineNo">156</span>    /**<a name="line.156"></a>
<span class="sourceLineNo">157</span>     * Filters {@link IoHandler#sessionCreated(IoSession)} event.<a name="line.157"></a>
<span class="sourceLineNo">158</span>     * <a name="line.158"></a>
<span class="sourceLineNo">159</span>     * @param nextFilter<a name="line.159"></a>
<span class="sourceLineNo">160</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.160"></a>
<span class="sourceLineNo">161</span>     *            object until this filter is removed from the chain.<a name="line.161"></a>
<span class="sourceLineNo">162</span>     * @param session The {@link IoSession} which has received this event<a name="line.162"></a>
<span class="sourceLineNo">163</span>     * @throws Exception If an error occurred while processing the event<a name="line.163"></a>
<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
<span class="sourceLineNo">165</span>    void sessionCreated(NextFilter nextFilter, IoSession session) throws Exception;<a name="line.165"></a>
<span class="sourceLineNo">166</span><a name="line.166"></a>
<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
<span class="sourceLineNo">168</span>     * Filters {@link IoHandler#sessionOpened(IoSession)} event.<a name="line.168"></a>
<span class="sourceLineNo">169</span>     * <a name="line.169"></a>
<span class="sourceLineNo">170</span>     * @param nextFilter<a name="line.170"></a>
<span class="sourceLineNo">171</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.171"></a>
<span class="sourceLineNo">172</span>     *            object until this filter is removed from the chain.<a name="line.172"></a>
<span class="sourceLineNo">173</span>     * @param session The {@link IoSession} which has received this event<a name="line.173"></a>
<span class="sourceLineNo">174</span>     * @throws Exception If an error occurred while processing the event<a name="line.174"></a>
<span class="sourceLineNo">175</span>     */<a name="line.175"></a>
<span class="sourceLineNo">176</span>    void sessionOpened(NextFilter nextFilter, IoSession session) throws Exception;<a name="line.176"></a>
<span class="sourceLineNo">177</span><a name="line.177"></a>
<span class="sourceLineNo">178</span>    /**<a name="line.178"></a>
<span class="sourceLineNo">179</span>     * Filters {@link IoHandler#sessionClosed(IoSession)} event.<a name="line.179"></a>
<span class="sourceLineNo">180</span>     * <a name="line.180"></a>
<span class="sourceLineNo">181</span>     * @param nextFilter<a name="line.181"></a>
<span class="sourceLineNo">182</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.182"></a>
<span class="sourceLineNo">183</span>     *            object until this filter is removed from the chain.<a name="line.183"></a>
<span class="sourceLineNo">184</span>     * @param session The {@link IoSession} which has received this event<a name="line.184"></a>
<span class="sourceLineNo">185</span>     * @throws Exception If an error occurred while processing the event<a name="line.185"></a>
<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
<span class="sourceLineNo">187</span>    void sessionClosed(NextFilter nextFilter, IoSession session) throws Exception;<a name="line.187"></a>
<span class="sourceLineNo">188</span><a name="line.188"></a>
<span class="sourceLineNo">189</span>    /**<a name="line.189"></a>
<span class="sourceLineNo">190</span>     * Filters {@link IoHandler#sessionIdle(IoSession,IdleStatus)} event.<a name="line.190"></a>
<span class="sourceLineNo">191</span>     * <a name="line.191"></a>
<span class="sourceLineNo">192</span>     * @param nextFilter<a name="line.192"></a>
<span class="sourceLineNo">193</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.193"></a>
<span class="sourceLineNo">194</span>     *            object until this filter is removed from the chain.<a name="line.194"></a>
<span class="sourceLineNo">195</span>     * @param session The {@link IoSession} which has received this event<a name="line.195"></a>
<span class="sourceLineNo">196</span>     * @param status The {@link IdleStatus} type<a name="line.196"></a>
<span class="sourceLineNo">197</span>     * @throws Exception If an error occurred while processing the event<a name="line.197"></a>
<span class="sourceLineNo">198</span>     */<a name="line.198"></a>
<span class="sourceLineNo">199</span>    void sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status) throws Exception;<a name="line.199"></a>
<span class="sourceLineNo">200</span><a name="line.200"></a>
<span class="sourceLineNo">201</span>    /**<a name="line.201"></a>
<span class="sourceLineNo">202</span>     * Filters {@link IoHandler#exceptionCaught(IoSession,Throwable)} event.<a name="line.202"></a>
<span class="sourceLineNo">203</span>     * <a name="line.203"></a>
<span class="sourceLineNo">204</span>     * @param nextFilter<a name="line.204"></a>
<span class="sourceLineNo">205</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.205"></a>
<span class="sourceLineNo">206</span>     *            object until this filter is removed from the chain.<a name="line.206"></a>
<span class="sourceLineNo">207</span>     * @param session The {@link IoSession} which has received this event<a name="line.207"></a>
<span class="sourceLineNo">208</span>     * @param cause The exception that cause this event to be received<a name="line.208"></a>
<span class="sourceLineNo">209</span>     * @throws Exception If an error occurred while processing the event<a name="line.209"></a>
<span class="sourceLineNo">210</span>     */<a name="line.210"></a>
<span class="sourceLineNo">211</span>    void exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause) throws Exception;<a name="line.211"></a>
<span class="sourceLineNo">212</span><a name="line.212"></a>
<span class="sourceLineNo">213</span>    /**<a name="line.213"></a>
<span class="sourceLineNo">214</span>     * Filters {@link IoHandler#inputClosed(IoSession)} event.<a name="line.214"></a>
<span class="sourceLineNo">215</span>     * <a name="line.215"></a>
<span class="sourceLineNo">216</span>     * @param nextFilter<a name="line.216"></a>
<span class="sourceLineNo">217</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.217"></a>
<span class="sourceLineNo">218</span>     *            object until this filter is removed from the chain.<a name="line.218"></a>
<span class="sourceLineNo">219</span>     * @param session The {@link IoSession} which has received this event<a name="line.219"></a>
<span class="sourceLineNo">220</span>     * @throws Exception If an error occurred while processing the event<a name="line.220"></a>
<span class="sourceLineNo">221</span>     */<a name="line.221"></a>
<span class="sourceLineNo">222</span>    void inputClosed(NextFilter nextFilter, IoSession session) throws Exception;<a name="line.222"></a>
<span class="sourceLineNo">223</span><a name="line.223"></a>
<span class="sourceLineNo">224</span>    /**<a name="line.224"></a>
<span class="sourceLineNo">225</span>     * Filters {@link IoHandler#messageReceived(IoSession,Object)} event.<a name="line.225"></a>
<span class="sourceLineNo">226</span>     * <a name="line.226"></a>
<span class="sourceLineNo">227</span>     * @param nextFilter<a name="line.227"></a>
<span class="sourceLineNo">228</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.228"></a>
<span class="sourceLineNo">229</span>     *            object until this filter is removed from the chain.<a name="line.229"></a>
<span class="sourceLineNo">230</span>     * @param session The {@link IoSession} which has received this event<a name="line.230"></a>
<span class="sourceLineNo">231</span>     * @param message The received message<a name="line.231"></a>
<span class="sourceLineNo">232</span>     * @throws Exception If an error occurred while processing the event<a name="line.232"></a>
<span class="sourceLineNo">233</span>     */<a name="line.233"></a>
<span class="sourceLineNo">234</span>    void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception;<a name="line.234"></a>
<span class="sourceLineNo">235</span><a name="line.235"></a>
<span class="sourceLineNo">236</span>    /**<a name="line.236"></a>
<span class="sourceLineNo">237</span>     * Filters {@link IoHandler#messageSent(IoSession,Object)} event.<a name="line.237"></a>
<span class="sourceLineNo">238</span>     * <a name="line.238"></a>
<span class="sourceLineNo">239</span>     * @param nextFilter<a name="line.239"></a>
<span class="sourceLineNo">240</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.240"></a>
<span class="sourceLineNo">241</span>     *            object until this filter is removed from the chain.<a name="line.241"></a>
<span class="sourceLineNo">242</span>     * @param session The {@link IoSession} which has received this event<a name="line.242"></a>
<span class="sourceLineNo">243</span>     * @param writeRequest The {@link WriteRequest} that contains the sent message<a name="line.243"></a>
<span class="sourceLineNo">244</span>     * @throws Exception If an error occurred while processing the event<a name="line.244"></a>
<span class="sourceLineNo">245</span>     */<a name="line.245"></a>
<span class="sourceLineNo">246</span>    void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception;<a name="line.246"></a>
<span class="sourceLineNo">247</span><a name="line.247"></a>
<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
<span class="sourceLineNo">249</span>     * Filters {@link IoSession#close(boolean)} method invocation.<a name="line.249"></a>
<span class="sourceLineNo">250</span>     * <a name="line.250"></a>
<span class="sourceLineNo">251</span>     * @param nextFilter<a name="line.251"></a>
<span class="sourceLineNo">252</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.252"></a>
<span class="sourceLineNo">253</span>     *            object until this filter is removed from the chain.<a name="line.253"></a>
<span class="sourceLineNo">254</span>     * @param session<a name="line.254"></a>
<span class="sourceLineNo">255</span>     *            The {@link IoSession} which has to process this method<a name="line.255"></a>
<span class="sourceLineNo">256</span>     *            invocation<a name="line.256"></a>
<span class="sourceLineNo">257</span>     * @throws Exception If an error occurred while processing the event<a name="line.257"></a>
<span class="sourceLineNo">258</span>     */<a name="line.258"></a>
<span class="sourceLineNo">259</span>    void filterClose(NextFilter nextFilter, IoSession session) throws Exception;<a name="line.259"></a>
<span class="sourceLineNo">260</span><a name="line.260"></a>
<span class="sourceLineNo">261</span>    /**<a name="line.261"></a>
<span class="sourceLineNo">262</span>     * Filters {@link IoSession#write(Object)} method invocation.<a name="line.262"></a>
<span class="sourceLineNo">263</span>     * <a name="line.263"></a>
<span class="sourceLineNo">264</span>     * @param nextFilter<a name="line.264"></a>
<span class="sourceLineNo">265</span>     *            the {@link NextFilter} for this filter. You can reuse this<a name="line.265"></a>
<span class="sourceLineNo">266</span>     *            object until this filter is removed from the chain.<a name="line.266"></a>
<span class="sourceLineNo">267</span>     * @param session The {@link IoSession} which has to process this invocation<a name="line.267"></a>
<span class="sourceLineNo">268</span>     * @param writeRequest The {@link WriteRequest} to process<a name="line.268"></a>
<span class="sourceLineNo">269</span>     * @throws Exception If an error occurred while processing the event<a name="line.269"></a>
<span class="sourceLineNo">270</span>     */<a name="line.270"></a>
<span class="sourceLineNo">271</span>    void filterWrite(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception;<a name="line.271"></a>
<span class="sourceLineNo">272</span><a name="line.272"></a>
<span class="sourceLineNo">273</span>    /**<a name="line.273"></a>
<span class="sourceLineNo">274</span>     * Represents the next {@link IoFilter} in {@link IoFilterChain}.<a name="line.274"></a>
<span class="sourceLineNo">275</span>     */<a name="line.275"></a>
<span class="sourceLineNo">276</span>    interface NextFilter {<a name="line.276"></a>
<span class="sourceLineNo">277</span>        /**<a name="line.277"></a>
<span class="sourceLineNo">278</span>         * Forwards &lt;tt&gt;sessionCreated&lt;/tt&gt; event to next filter.<a name="line.278"></a>
<span class="sourceLineNo">279</span>         * <a name="line.279"></a>
<span class="sourceLineNo">280</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.280"></a>
<span class="sourceLineNo">281</span>         */<a name="line.281"></a>
<span class="sourceLineNo">282</span>        void sessionCreated(IoSession session);<a name="line.282"></a>
<span class="sourceLineNo">283</span><a name="line.283"></a>
<span class="sourceLineNo">284</span>        /**<a name="line.284"></a>
<span class="sourceLineNo">285</span>         * Forwards &lt;tt&gt;sessionOpened&lt;/tt&gt; event to next filter.<a name="line.285"></a>
<span class="sourceLineNo">286</span>         * <a name="line.286"></a>
<span class="sourceLineNo">287</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.287"></a>
<span class="sourceLineNo">288</span>         */<a name="line.288"></a>
<span class="sourceLineNo">289</span>        void sessionOpened(IoSession session);<a name="line.289"></a>
<span class="sourceLineNo">290</span><a name="line.290"></a>
<span class="sourceLineNo">291</span>        /**<a name="line.291"></a>
<span class="sourceLineNo">292</span>         * Forwards &lt;tt&gt;sessionClosed&lt;/tt&gt; event to next filter.<a name="line.292"></a>
<span class="sourceLineNo">293</span>         * <a name="line.293"></a>
<span class="sourceLineNo">294</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.294"></a>
<span class="sourceLineNo">295</span>         */<a name="line.295"></a>
<span class="sourceLineNo">296</span>        void sessionClosed(IoSession session);<a name="line.296"></a>
<span class="sourceLineNo">297</span><a name="line.297"></a>
<span class="sourceLineNo">298</span>        /**<a name="line.298"></a>
<span class="sourceLineNo">299</span>         * Forwards &lt;tt&gt;sessionIdle&lt;/tt&gt; event to next filter.<a name="line.299"></a>
<span class="sourceLineNo">300</span>         * <a name="line.300"></a>
<span class="sourceLineNo">301</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.301"></a>
<span class="sourceLineNo">302</span>         * @param status The {@link IdleStatus} type<a name="line.302"></a>
<span class="sourceLineNo">303</span>         */<a name="line.303"></a>
<span class="sourceLineNo">304</span>        void sessionIdle(IoSession session, IdleStatus status);<a name="line.304"></a>
<span class="sourceLineNo">305</span><a name="line.305"></a>
<span class="sourceLineNo">306</span>        /**<a name="line.306"></a>
<span class="sourceLineNo">307</span>         * Forwards &lt;tt&gt;exceptionCaught&lt;/tt&gt; event to next filter.<a name="line.307"></a>
<span class="sourceLineNo">308</span>         * <a name="line.308"></a>
<span class="sourceLineNo">309</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.309"></a>
<span class="sourceLineNo">310</span>         * @param cause The exception that cause this event to be received<a name="line.310"></a>
<span class="sourceLineNo">311</span>         */<a name="line.311"></a>
<span class="sourceLineNo">312</span>        void exceptionCaught(IoSession session, Throwable cause);<a name="line.312"></a>
<span class="sourceLineNo">313</span><a name="line.313"></a>
<span class="sourceLineNo">314</span>        /**<a name="line.314"></a>
<span class="sourceLineNo">315</span>         * <a name="line.315"></a>
<span class="sourceLineNo">316</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.316"></a>
<span class="sourceLineNo">317</span>         */<a name="line.317"></a>
<span class="sourceLineNo">318</span>        void inputClosed(IoSession session);<a name="line.318"></a>
<span class="sourceLineNo">319</span><a name="line.319"></a>
<span class="sourceLineNo">320</span>        /**<a name="line.320"></a>
<span class="sourceLineNo">321</span>         * Forwards &lt;tt&gt;messageReceived&lt;/tt&gt; event to next filter.<a name="line.321"></a>
<span class="sourceLineNo">322</span>         * <a name="line.322"></a>
<span class="sourceLineNo">323</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.323"></a>
<span class="sourceLineNo">324</span>         * @param message The received message<a name="line.324"></a>
<span class="sourceLineNo">325</span>         */<a name="line.325"></a>
<span class="sourceLineNo">326</span>        void messageReceived(IoSession session, Object message);<a name="line.326"></a>
<span class="sourceLineNo">327</span><a name="line.327"></a>
<span class="sourceLineNo">328</span>        /**<a name="line.328"></a>
<span class="sourceLineNo">329</span>         * Forwards &lt;tt&gt;messageSent&lt;/tt&gt; event to next filter.<a name="line.329"></a>
<span class="sourceLineNo">330</span>         * <a name="line.330"></a>
<span class="sourceLineNo">331</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.331"></a>
<span class="sourceLineNo">332</span>         * @param writeRequest The {@link WriteRequest} to process<a name="line.332"></a>
<span class="sourceLineNo">333</span>         */<a name="line.333"></a>
<span class="sourceLineNo">334</span>        void messageSent(IoSession session, WriteRequest writeRequest);<a name="line.334"></a>
<span class="sourceLineNo">335</span><a name="line.335"></a>
<span class="sourceLineNo">336</span>        /**<a name="line.336"></a>
<span class="sourceLineNo">337</span>         * Forwards &lt;tt&gt;filterWrite&lt;/tt&gt; event to next filter.<a name="line.337"></a>
<span class="sourceLineNo">338</span>         * <a name="line.338"></a>
<span class="sourceLineNo">339</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.339"></a>
<span class="sourceLineNo">340</span>         * @param writeRequest The {@link WriteRequest} to process<a name="line.340"></a>
<span class="sourceLineNo">341</span>         */<a name="line.341"></a>
<span class="sourceLineNo">342</span>        void filterWrite(IoSession session, WriteRequest writeRequest);<a name="line.342"></a>
<span class="sourceLineNo">343</span><a name="line.343"></a>
<span class="sourceLineNo">344</span>        /**<a name="line.344"></a>
<span class="sourceLineNo">345</span>         * Forwards &lt;tt&gt;filterClose&lt;/tt&gt; event to next filter.<a name="line.345"></a>
<span class="sourceLineNo">346</span>         * <a name="line.346"></a>
<span class="sourceLineNo">347</span>         * @param session The {@link IoSession} which has to process this invocation<a name="line.347"></a>
<span class="sourceLineNo">348</span>         */<a name="line.348"></a>
<span class="sourceLineNo">349</span>        void filterClose(IoSession session);<a name="line.349"></a>
<span class="sourceLineNo">350</span><a name="line.350"></a>
<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
<span class="sourceLineNo">352</span>}<a name="line.352"></a>




























































</pre>
</div>
</body>
</html>
