package org.voovan.network;
import org.voovan.network.exception.IoFilterException;
/**
* 过滤器接口
*
* @author helyho
*
* Voovan Framework.
* WebSite: https://github.com/helyho/Voovan
* Licence: Apache v2 License
*/
public interface IoFilter {
/**
* 过滤器解密函数,接收事件(onRecive)前调用
* onRecive事件前调用
* @param session session 对象
* @param object 解码对象,上一个过滤器的返回值
* @return 解码后对象
* @throws IoFilterException 过滤器异常
*/
public Object decode(IoSession session,Object object) throws IoFilterException;
/**
* 过滤器加密函数,发送事件(onSend)前调用
* send事件前调用
* @param session session 对象
* @param object 编码对象,上一个过滤器的返回值
* @return 编码后对象
* 最后一个过滤器返回的数据只支持三种数据类型: ByteBuffer, String, byte[]
* @throws IoFilterException 过滤器异常
*/
public Object encode(IoSession session,Object object)throws IoFilterException;
}