package org.xnio.conduits;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.concurrent.TimeUnit;
import org.xnio.ChannelListener;
import org.xnio.XnioIoThread;
import org.xnio.XnioWorker;
import org.xnio.channels.StreamSinkChannel;
import org.xnio.channels.StreamSourceChannel;

A conduit which wraps a channel, for compatibility.
Author:David M. Lloyd
/** * A conduit which wraps a channel, for compatibility. * * @author <a href="mailto:david.lloyd@redhat.com">David M. Lloyd</a> */
public final class StreamSourceChannelWrappingConduit implements StreamSourceConduit { private final StreamSourceChannel channel;
Construct a new instance.
Params:
  • channel – the channel to wrap
/** * Construct a new instance. * * @param channel the channel to wrap */
public StreamSourceChannelWrappingConduit(final StreamSourceChannel channel) { this.channel = channel; } public void terminateReads() throws IOException { channel.shutdownReads(); } public long transferTo(final long position, final long count, final FileChannel target) throws IOException { return channel.transferTo(position, count, target); } public long transferTo(final long count, final ByteBuffer throughBuffer, final StreamSinkChannel target) throws IOException { return channel.transferTo(count, throughBuffer, target); } public int read(final ByteBuffer dst) throws IOException { return channel.read(dst); } public long read(final ByteBuffer[] dsts, final int offs, final int len) throws IOException { return channel.read(dsts, offs, len); } public boolean isReadShutdown() { return ! channel.isOpen(); } public void resumeReads() { channel.resumeReads(); } public void suspendReads() { channel.suspendReads(); } public void wakeupReads() { channel.wakeupReads(); } public boolean isReadResumed() { return channel.isReadResumed(); } public void awaitReadable() throws IOException { channel.awaitReadable(); } public void awaitReadable(final long time, final TimeUnit timeUnit) throws IOException { channel.awaitReadable(time, timeUnit); } public XnioIoThread getReadThread() { return channel.getIoThread(); } public void setReadReadyHandler(final ReadReadyHandler handler) { channel.getReadSetter().set(new ChannelListener<StreamSourceChannel>() { public void handleEvent(final StreamSourceChannel channel) { handler.readReady(); } }); } public XnioWorker getWorker() { return channel.getWorker(); } }