package com.l7tech.server.tomcat.nio2;

import java.io.IOException;
import java.net.SocketAddress;
import java.net.SocketOption;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;
import java.util.Set;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class AsynchronousSocketChannelWrapper extends AsynchronousSocketChannel {
   protected final AsynchronousSocketChannel delegate;

   AsynchronousSocketChannelWrapper(AsynchronousSocketChannel var1) {
      super(var1.provider());
      this.delegate = var1;
   }

   @Override
   public AsynchronousSocketChannel bind(SocketAddress var1) throws IOException {
      return this.delegate.bind(var1);
   }

   @Override
   public <T> AsynchronousSocketChannel setOption(SocketOption<T> var1, T var2) throws IOException {
      return this.delegate.setOption(var1, var2);
   }

   @Override
   public <T> T getOption(SocketOption<T> var1) throws IOException {
      return this.delegate.getOption(var1);
   }

   @Override
   public Set<SocketOption<?>> supportedOptions() {
      return this.delegate.supportedOptions();
   }

   @Override
   public AsynchronousSocketChannel shutdownInput() throws IOException {
      return this.delegate.shutdownInput();
   }

   @Override
   public AsynchronousSocketChannel shutdownOutput() throws IOException {
      return this.delegate.shutdownOutput();
   }

   @Override
   public SocketAddress getRemoteAddress() throws IOException {
      return this.delegate.getRemoteAddress();
   }

   @Override
   public <A> void connect(SocketAddress var1, A var2, CompletionHandler<Void, ? super A> var3) {
      this.delegate.connect(var1, var2, var3);
   }

   @Override
   public Future<Void> connect(SocketAddress var1) {
      return this.delegate.connect(var1);
   }

   @Override
   public <A> void read(ByteBuffer var1, long var2, TimeUnit var4, A var5, CompletionHandler<Integer, ? super A> var6) {
      this.delegate.read(var1, var2, var4, var5, var6);
   }

   @Override
   public Future<Integer> read(ByteBuffer var1) {
      return this.delegate.read(var1);
   }

   @Override
   public <A> void read(ByteBuffer[] var1, int var2, int var3, long var4, TimeUnit var6, A var7, CompletionHandler<Long, ? super A> var8) {
      this.delegate.read(var1, var2, var3, var4, var6, var7, var8);
   }

   @Override
   public <A> void write(ByteBuffer var1, long var2, TimeUnit var4, A var5, CompletionHandler<Integer, ? super A> var6) {
      this.delegate.write(var1, var2, var4, var5, var6);
   }

   @Override
   public Future<Integer> write(ByteBuffer var1) {
      return this.delegate.write(var1);
   }

   @Override
   public <A> void write(ByteBuffer[] var1, int var2, int var3, long var4, TimeUnit var6, A var7, CompletionHandler<Long, ? super A> var8) {
      this.delegate.write(var1, var2, var3, var4, var6, var7, var8);
   }

   @Override
   public SocketAddress getLocalAddress() throws IOException {
      return this.delegate.getLocalAddress();
   }

   @Override
   public boolean isOpen() {
      return this.delegate.isOpen();
   }

   @Override
   public void close() throws IOException {
      this.delegate.close();
   }
}
