package com.netifera.platform.net.sockets;
import java.io.IOException;
import java.nio.channels.SelectableChannel;
import com.netifera.platform.net.sockets.internal.SocketEngineService;
public abstract class AsynchronousSelectableChannel implements AsynchronousChannel {
protected SocketEngineService engine;
/** The socket or datagram channel which is wrapped */
protected SelectableChannel channel;
public SelectableChannel getWrappedChannel() {
return channel;
}
public void close() throws IOException {
try {
channel.close();
} finally {
engine.unregisterChannel(this);
}
}
public boolean isOpen() {
return channel.isOpen();
}
@Override
protected void finalize() {
try {
close();
} catch (IOException e) {
}
}
}