package com.mogujie.tt.imlib.network;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
import com.mogujie.tt.log.Logger;
public abstract class BaseServerHandler extends SimpleChannelHandler {
protected boolean connected = false;
private Logger logger = Logger.getLogger(BaseServerHandler.class);
protected abstract void channelUnconnected();
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
// TODO Auto-generated method stub
super.channelConnected(ctx, e);
logger.d("channel#channelConnected");
connected = true;
}
@Override
public void channelDisconnected(ChannelHandlerContext ctx,
ChannelStateEvent e) throws Exception {
// TODO Auto-generated method stub
super.channelDisconnected(ctx, e);
logger.d("channel#channelDisconnected");
connected = false;
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
// TODO Auto-generated method stub
super.exceptionCaught(ctx, e);
logger.e("channel#exceptionCaught:%s", e.getCause().toString());
if (!connected) {
channelUnconnected();
}
}
}