package org.limewire.nio.channel;
import java.nio.channels.WritableByteChannel;
import org.limewire.nio.observer.WriteObserver;
/**
* Defines an interface for a channel that can be written to, can receive write
* events (when with interest), and can forward write events to a
* <code>WriteObserver</code> (who could in turn notify another
* <code>WriteObserver</code>).
*/
public interface InterestWritableByteChannel extends WritableByteChannel, WriteObserver {
/**
* Marks the given observer as interested (or not interested, if status is false)
* in knowing when a write can be performed on this channel.
*/
public void interestWrite(WriteObserver observer, boolean status);
/**
* Returns true, if the channel has buffered data. If the channel is closed
* before this method returns <code>false</code> the buffered data is lost.
*/
public boolean hasBufferedOutput();
}