package org.xnio; import java.nio.channels.Channel; /** * A channel source. Instances of this interface are used to create a channel and associate it with a listener. Example * uses are to establish a TCP connection (as a client), open a serial port, etc. * * @param <T> the type of channel */ public interface ChannelSource<T extends Channel> { /** * Open a channel. * * @param openListener the listener which will be notified when the channel is open * @return the future result of this operation */ IoFuture<T> open(ChannelListener<? super T> openListener); }