package edu.washington.escience.myria.parallel.ipc; import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelEvent; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelSink; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.DefaultChannelPipeline; import org.slf4j.LoggerFactory; /** * This class channel is used where no meaningful channel instances can be used. Most probability it happens when a * channel is null but a future must be generated. * */ public final class NullChannel extends InJVMChannel { /** The logger for this class. */ protected static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(NullChannel.class); /** * Singleton instance. */ public static final NullChannel NULL; /** * A do nothing pipeline. */ private static final ChannelPipeline PIPELINE; static { PIPELINE = new DefaultChannelPipeline() { @Override public void sendUpstream(final ChannelEvent e) {} @Override public void sendDownstream(final ChannelEvent e) {} @Override public void attach(final Channel channel, final ChannelSink sink) {} @Override public boolean isAttached() { return true; } }; NULL = new NullChannel(); } /** * Constructor. */ private NullChannel() { super(PIPELINE, null); Channels.fireChannelClosed(this); setClosed(); } }