cleanedup the sctp notification handler

This commit is contained in:
Jestan Nirojan 2012-02-10 23:45:04 +05:30
parent af943b7502
commit 71fd0231da
2 changed files with 7 additions and 12 deletions

View File

@ -23,6 +23,7 @@ import com.sun.nio.sctp.PeerAddressChangeNotification;
import com.sun.nio.sctp.SendFailedNotification;
import com.sun.nio.sctp.ShutdownNotification;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.Channels;
import io.netty.logging.InternalLogger;
import io.netty.logging.InternalLoggerFactory;
@ -36,11 +37,11 @@ class SctpNotificationHandler extends AbstractNotificationHandler {
InternalLoggerFactory.getInstance(SctpNotificationHandler.class);
private final SctpChannelImpl sctpChannel;
private final SctpWorker sctpWorker;
private final ChannelPipeline pipeline;
public SctpNotificationHandler(SctpChannelImpl sctpChannel, SctpWorker sctpWorker) {
SctpNotificationHandler(SctpChannelImpl sctpChannel) {
this.sctpChannel = sctpChannel;
this.sctpWorker = sctpWorker;
this.pipeline = sctpChannel.getPipeline();
}
@Override
@ -49,12 +50,6 @@ class SctpNotificationHandler extends AbstractNotificationHandler {
return HandlerResult.CONTINUE;
}
@Override
public HandlerResult handleNotification(Notification notification, Object o) {
fireNotificationReceived(notification, o);
return HandlerResult.CONTINUE;
}
@Override
public HandlerResult handleNotification(PeerAddressChangeNotification notification, Object o) {
fireNotificationReceived(notification, o);
@ -69,11 +64,11 @@ class SctpNotificationHandler extends AbstractNotificationHandler {
@Override
public HandlerResult handleNotification(ShutdownNotification notification, Object o) {
sctpWorker.close(sctpChannel, Channels.succeededFuture(sctpChannel));
Channels.fireChannelDisconnected(sctpChannel);
return HandlerResult.RETURN;
}
private void fireNotificationReceived(Notification notification, Object o) {
sctpChannel.getPipeline().sendUpstream(new SctpNotificationEvent(sctpChannel, notification, o));
pipeline.sendUpstream(new SctpNotificationEvent(sctpChannel, notification, o));
}
}

View File

@ -86,7 +86,7 @@ class SctpWorker implements Runnable {
boolean server = !(channel instanceof SctpClientChannel);
Runnable registerTask = new RegisterTask(channel, future, server);
notificationHandler = new SctpNotificationHandler(channel, this);
notificationHandler = new SctpNotificationHandler(channel);
Selector selector;
synchronized (startStopLock) {