package org.xnio.conduits;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.xnio.XnioIoThread;
public abstract class AbstractSynchronizedSinkConduit<D extends SinkConduit> extends AbstractSynchronizedConduit<D> implements SinkConduit {
protected AbstractSynchronizedSinkConduit(final D next) {
super(next);
}
protected AbstractSynchronizedSinkConduit(final D next, final Object lock) {
super(next, lock);
}
public void terminateWrites() throws IOException {
synchronized (lock) {
next.terminateWrites();
}
}
public boolean isWriteShutdown() {
synchronized (lock) {
return next.isWriteShutdown();
}
}
public void resumeWrites() {
synchronized (lock) {
next.resumeWrites();
}
}
public void suspendWrites() {
synchronized (lock) {
next.suspendWrites();
}
}
public void wakeupWrites() {
synchronized (lock) {
next.wakeupWrites();
}
}
public boolean isWriteResumed() {
synchronized (lock) {
return next.isWriteResumed();
}
}
public void awaitWritable() throws IOException {
synchronized (lock) {
next.awaitWritable();
}
}
public void awaitWritable(final long time, final TimeUnit timeUnit) throws IOException {
synchronized (lock) {
next.awaitWritable(time, timeUnit);
}
}
public XnioIoThread getWriteThread() {
return next.getWriteThread();
}
public void setWriteReadyHandler(final WriteReadyHandler handler) {
synchronized (lock) {
next.setWriteReadyHandler(handler);
}
}
public void truncateWrites() throws IOException {
synchronized (lock) {
next.truncateWrites();
}
}
public boolean flush() throws IOException {
synchronized (lock) {
return next.flush();
}
}
}