package io.netty.buffer;

import g.a.a.a.a;
import io.netty.util.internal.PlatformDependent;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.ClosedChannelException;
import java.nio.channels.FileChannel;
import java.nio.channels.GatheringByteChannel;
import java.nio.channels.ScatteringByteChannel;
import java.util.Objects;

/* JADX INFO: loaded from: classes.dex */
public class UnpooledDirectByteBuf extends AbstractReferenceCountedByteBuf {
    private final ByteBufAllocator alloc;
    private ByteBuffer buffer;
    private int capacity;
    private boolean doNotFree;
    private ByteBuffer tmpNioBuf;

    public UnpooledDirectByteBuf(ByteBufAllocator byteBufAllocator, int i2, int i3) {
        super(i3);
        Objects.requireNonNull(byteBufAllocator, "alloc");
        if (i2 < 0) {
            throw new IllegalArgumentException(a.l("initialCapacity: ", i2));
        }
        if (i3 < 0) {
            throw new IllegalArgumentException(a.l("maxCapacity: ", i3));
        }
        if (i2 > i3) {
            throw new IllegalArgumentException(String.format("initialCapacity(%d) > maxCapacity(%d)", Integer.valueOf(i2), Integer.valueOf(i3)));
        }
        this.alloc = byteBufAllocator;
        setByteBuffer(ByteBuffer.allocateDirect(i2));
    }

    public UnpooledDirectByteBuf(ByteBufAllocator byteBufAllocator, ByteBuffer byteBuffer, int i2) {
        super(i2);
        Objects.requireNonNull(byteBufAllocator, "alloc");
        Objects.requireNonNull(byteBuffer, "initialBuffer");
        if (!byteBuffer.isDirect()) {
            throw new IllegalArgumentException("initialBuffer is not a direct buffer.");
        }
        if (byteBuffer.isReadOnly()) {
            throw new IllegalArgumentException("initialBuffer is a read-only buffer.");
        }
        int iRemaining = byteBuffer.remaining();
        if (iRemaining > i2) {
            throw new IllegalArgumentException(String.format("initialCapacity(%d) > maxCapacity(%d)", Integer.valueOf(iRemaining), Integer.valueOf(i2)));
        }
        this.alloc = byteBufAllocator;
        this.doNotFree = true;
        setByteBuffer(byteBuffer.slice().order(ByteOrder.BIG_ENDIAN));
        writerIndex(iRemaining);
    }

    private int getBytes(int i2, FileChannel fileChannel, long j2, int i3, boolean z2) {
        ensureAccessible();
        if (i3 == 0) {
            return 0;
        }
        ByteBuffer byteBufferInternalNioBuffer = z2 ? internalNioBuffer() : this.buffer.duplicate();
        byteBufferInternalNioBuffer.clear().position(i2).limit(i2 + i3);
        return fileChannel.write(byteBufferInternalNioBuffer, j2);
    }

    private int getBytes(int i2, GatheringByteChannel gatheringByteChannel, int i3, boolean z2) {
        ensureAccessible();
        if (i3 == 0) {
            return 0;
        }
        ByteBuffer byteBufferInternalNioBuffer = z2 ? internalNioBuffer() : this.buffer.duplicate();
        byteBufferInternalNioBuffer.clear().position(i2).limit(i2 + i3);
        return gatheringByteChannel.write(byteBufferInternalNioBuffer);
    }

    private void getBytes(int i2, OutputStream outputStream, int i3, boolean z2) throws IOException {
        ensureAccessible();
        if (i3 == 0) {
            return;
        }
        ByteBufUtil.readBytes(alloc(), z2 ? internalNioBuffer() : this.buffer.duplicate(), i2, i3, outputStream);
    }

    private void getBytes(int i2, ByteBuffer byteBuffer, boolean z2) {
        checkIndex(i2, byteBuffer.remaining());
        ByteBuffer byteBufferInternalNioBuffer = z2 ? internalNioBuffer() : this.buffer.duplicate();
        byteBufferInternalNioBuffer.clear().position(i2).limit(byteBuffer.remaining() + i2);
        byteBuffer.put(byteBufferInternalNioBuffer);
    }

    private void getBytes(int i2, byte[] bArr, int i3, int i4, boolean z2) {
        checkDstIndex(i2, i4, i3, bArr.length);
        ByteBuffer byteBufferInternalNioBuffer = z2 ? internalNioBuffer() : this.buffer.duplicate();
        byteBufferInternalNioBuffer.clear().position(i2).limit(i2 + i4);
        byteBufferInternalNioBuffer.get(bArr, i3, i4);
    }

    private ByteBuffer internalNioBuffer() {
        ByteBuffer byteBuffer = this.tmpNioBuf;
        if (byteBuffer != null) {
            return byteBuffer;
        }
        ByteBuffer byteBufferDuplicate = this.buffer.duplicate();
        this.tmpNioBuf = byteBufferDuplicate;
        return byteBufferDuplicate;
    }

    private void setByteBuffer(ByteBuffer byteBuffer) {
        ByteBuffer byteBuffer2 = this.buffer;
        if (byteBuffer2 != null) {
            if (this.doNotFree) {
                this.doNotFree = false;
            } else {
                freeDirect(byteBuffer2);
            }
        }
        this.buffer = byteBuffer;
        this.tmpNioBuf = null;
        this.capacity = byteBuffer.remaining();
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public byte _getByte(int i2) {
        return this.buffer.get(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public int _getInt(int i2) {
        return this.buffer.getInt(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public int _getIntLE(int i2) {
        return ByteBufUtil.swapInt(this.buffer.getInt(i2));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public long _getLong(int i2) {
        return this.buffer.getLong(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public long _getLongLE(int i2) {
        return ByteBufUtil.swapLong(this.buffer.getLong(i2));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public short _getShort(int i2) {
        return this.buffer.getShort(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public short _getShortLE(int i2) {
        return ByteBufUtil.swapShort(this.buffer.getShort(i2));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public int _getUnsignedMedium(int i2) {
        return (getByte(i2 + 2) & 255) | ((getByte(i2) & 255) << 16) | ((getByte(i2 + 1) & 255) << 8);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public int _getUnsignedMediumLE(int i2) {
        return ((getByte(i2 + 2) & 255) << 16) | (getByte(i2) & 255) | ((getByte(i2 + 1) & 255) << 8);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setByte(int i2, int i3) {
        this.buffer.put(i2, (byte) i3);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setInt(int i2, int i3) {
        this.buffer.putInt(i2, i3);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setIntLE(int i2, int i3) {
        this.buffer.putInt(i2, ByteBufUtil.swapInt(i3));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setLong(int i2, long j2) {
        this.buffer.putLong(i2, j2);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setLongLE(int i2, long j2) {
        this.buffer.putLong(i2, ByteBufUtil.swapLong(j2));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setMedium(int i2, int i3) {
        setByte(i2, (byte) (i3 >>> 16));
        setByte(i2 + 1, (byte) (i3 >>> 8));
        setByte(i2 + 2, (byte) i3);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setMediumLE(int i2, int i3) {
        setByte(i2, (byte) i3);
        setByte(i2 + 1, (byte) (i3 >>> 8));
        setByte(i2 + 2, (byte) (i3 >>> 16));
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setShort(int i2, int i3) {
        this.buffer.putShort(i2, (short) i3);
    }

    @Override // io.netty.buffer.AbstractByteBuf
    public void _setShortLE(int i2, int i3) {
        this.buffer.putShort(i2, ByteBufUtil.swapShort((short) i3));
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBufAllocator alloc() {
        return this.alloc;
    }

    public ByteBuffer allocateDirect(int i2) {
        return ByteBuffer.allocateDirect(i2);
    }

    @Override // io.netty.buffer.ByteBuf
    public byte[] array() {
        throw new UnsupportedOperationException("direct buffer");
    }

    @Override // io.netty.buffer.ByteBuf
    public int arrayOffset() {
        throw new UnsupportedOperationException("direct buffer");
    }

    @Override // io.netty.buffer.ByteBuf
    public int capacity() {
        return this.capacity;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf capacity(int i2) {
        checkNewCapacity(i2);
        int i3 = readerIndex();
        int iWriterIndex = writerIndex();
        int i4 = this.capacity;
        if (i2 > i4) {
            ByteBuffer byteBuffer = this.buffer;
            ByteBuffer byteBufferAllocateDirect = allocateDirect(i2);
            byteBuffer.position(0).limit(byteBuffer.capacity());
            byteBufferAllocateDirect.position(0).limit(byteBuffer.capacity());
            byteBufferAllocateDirect.put(byteBuffer);
            byteBufferAllocateDirect.clear();
            setByteBuffer(byteBufferAllocateDirect);
        } else if (i2 < i4) {
            ByteBuffer byteBuffer2 = this.buffer;
            ByteBuffer byteBufferAllocateDirect2 = allocateDirect(i2);
            if (i3 < i2) {
                if (iWriterIndex > i2) {
                    writerIndex(i2);
                } else {
                    i2 = iWriterIndex;
                }
                byteBuffer2.position(i3).limit(i2);
                byteBufferAllocateDirect2.position(i3).limit(i2);
                byteBufferAllocateDirect2.put(byteBuffer2);
                byteBufferAllocateDirect2.clear();
            } else {
                setIndex(i2, i2);
            }
            setByteBuffer(byteBufferAllocateDirect2);
        }
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf copy(int i2, int i3) {
        ensureAccessible();
        try {
            return alloc().directBuffer(i3, maxCapacity()).writeBytes((ByteBuffer) this.buffer.duplicate().clear().position(i2).limit(i2 + i3));
        } catch (IllegalArgumentException unused) {
            StringBuilder sbF = a.F("Too many bytes to read - Need ");
            sbF.append(i2 + i3);
            throw new IndexOutOfBoundsException(sbF.toString());
        }
    }

    @Override // io.netty.buffer.AbstractReferenceCountedByteBuf
    public void deallocate() {
        ByteBuffer byteBuffer = this.buffer;
        if (byteBuffer == null) {
            return;
        }
        this.buffer = null;
        if (this.doNotFree) {
            return;
        }
        freeDirect(byteBuffer);
    }

    public void freeDirect(ByteBuffer byteBuffer) {
        PlatformDependent.freeDirectBuffer(byteBuffer);
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public byte getByte(int i2) {
        ensureAccessible();
        return _getByte(i2);
    }

    @Override // io.netty.buffer.ByteBuf
    public int getBytes(int i2, FileChannel fileChannel, long j2, int i3) {
        return getBytes(i2, fileChannel, j2, i3, false);
    }

    @Override // io.netty.buffer.ByteBuf
    public int getBytes(int i2, GatheringByteChannel gatheringByteChannel, int i3) {
        return getBytes(i2, gatheringByteChannel, i3, false);
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf getBytes(int i2, ByteBuf byteBuf, int i3, int i4) {
        checkDstIndex(i2, i4, i3, byteBuf.capacity());
        if (byteBuf.hasArray()) {
            getBytes(i2, byteBuf.array(), byteBuf.arrayOffset() + i3, i4);
        } else if (byteBuf.nioBufferCount() > 0) {
            ByteBuffer[] byteBufferArrNioBuffers = byteBuf.nioBuffers(i3, i4);
            for (ByteBuffer byteBuffer : byteBufferArrNioBuffers) {
                int iRemaining = byteBuffer.remaining();
                getBytes(i2, byteBuffer);
                i2 += iRemaining;
            }
        } else {
            byteBuf.setBytes(i3, this, i2, i4);
        }
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf getBytes(int i2, OutputStream outputStream, int i3) throws IOException {
        getBytes(i2, outputStream, i3, false);
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf getBytes(int i2, ByteBuffer byteBuffer) {
        getBytes(i2, byteBuffer, false);
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf getBytes(int i2, byte[] bArr, int i3, int i4) {
        getBytes(i2, bArr, i3, i4, false);
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public int getInt(int i2) {
        ensureAccessible();
        return _getInt(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public long getLong(int i2) {
        ensureAccessible();
        return _getLong(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public short getShort(int i2) {
        ensureAccessible();
        return _getShort(i2);
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public int getUnsignedMedium(int i2) {
        ensureAccessible();
        return _getUnsignedMedium(i2);
    }

    @Override // io.netty.buffer.ByteBuf
    public boolean hasArray() {
        return false;
    }

    @Override // io.netty.buffer.ByteBuf
    public boolean hasMemoryAddress() {
        return false;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuffer internalNioBuffer(int i2, int i3) {
        checkIndex(i2, i3);
        return (ByteBuffer) internalNioBuffer().clear().position(i2).limit(i2 + i3);
    }

    @Override // io.netty.buffer.ByteBuf
    public boolean isDirect() {
        return true;
    }

    @Override // io.netty.buffer.ByteBuf
    public long memoryAddress() {
        throw new UnsupportedOperationException();
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuffer nioBuffer(int i2, int i3) {
        checkIndex(i2, i3);
        return ((ByteBuffer) this.buffer.duplicate().position(i2).limit(i2 + i3)).slice();
    }

    @Override // io.netty.buffer.ByteBuf
    public int nioBufferCount() {
        return 1;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuffer[] nioBuffers(int i2, int i3) {
        return new ByteBuffer[]{nioBuffer(i2, i3)};
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteOrder order() {
        return ByteOrder.BIG_ENDIAN;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public int readBytes(FileChannel fileChannel, long j2, int i2) {
        checkReadableBytes(i2);
        int bytes = getBytes(this.readerIndex, fileChannel, j2, i2, true);
        this.readerIndex += bytes;
        return bytes;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public int readBytes(GatheringByteChannel gatheringByteChannel, int i2) {
        checkReadableBytes(i2);
        int bytes = getBytes(this.readerIndex, gatheringByteChannel, i2, true);
        this.readerIndex += bytes;
        return bytes;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf readBytes(OutputStream outputStream, int i2) throws IOException {
        checkReadableBytes(i2);
        getBytes(this.readerIndex, outputStream, i2, true);
        this.readerIndex += i2;
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf readBytes(ByteBuffer byteBuffer) {
        int iRemaining = byteBuffer.remaining();
        checkReadableBytes(iRemaining);
        getBytes(this.readerIndex, byteBuffer, true);
        this.readerIndex += iRemaining;
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf readBytes(byte[] bArr, int i2, int i3) {
        checkReadableBytes(i3);
        getBytes(this.readerIndex, bArr, i2, i3, true);
        this.readerIndex += i3;
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf setByte(int i2, int i3) {
        ensureAccessible();
        _setByte(i2, i3);
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public int setBytes(int i2, InputStream inputStream, int i3) throws IOException {
        ensureAccessible();
        if (this.buffer.hasArray()) {
            return inputStream.read(this.buffer.array(), this.buffer.arrayOffset() + i2, i3);
        }
        byte[] bArr = new byte[i3];
        int i4 = inputStream.read(bArr);
        if (i4 <= 0) {
            return i4;
        }
        ByteBuffer byteBufferInternalNioBuffer = internalNioBuffer();
        byteBufferInternalNioBuffer.clear().position(i2);
        byteBufferInternalNioBuffer.put(bArr, 0, i4);
        return i4;
    }

    @Override // io.netty.buffer.ByteBuf
    public int setBytes(int i2, FileChannel fileChannel, long j2, int i3) {
        ensureAccessible();
        internalNioBuffer().clear().position(i2).limit(i2 + i3);
        try {
            return fileChannel.read(this.tmpNioBuf, j2);
        } catch (ClosedChannelException unused) {
            return -1;
        }
    }

    @Override // io.netty.buffer.ByteBuf
    public int setBytes(int i2, ScatteringByteChannel scatteringByteChannel, int i3) {
        ensureAccessible();
        internalNioBuffer().clear().position(i2).limit(i2 + i3);
        try {
            return scatteringByteChannel.read(this.tmpNioBuf);
        } catch (ClosedChannelException unused) {
            return -1;
        }
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf setBytes(int i2, ByteBuf byteBuf, int i3, int i4) {
        checkSrcIndex(i2, i4, i3, byteBuf.capacity());
        if (byteBuf.nioBufferCount() > 0) {
            ByteBuffer[] byteBufferArrNioBuffers = byteBuf.nioBuffers(i3, i4);
            for (ByteBuffer byteBuffer : byteBufferArrNioBuffers) {
                int iRemaining = byteBuffer.remaining();
                setBytes(i2, byteBuffer);
                i2 += iRemaining;
            }
        } else {
            byteBuf.getBytes(i3, this, i2, i4);
        }
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf setBytes(int i2, ByteBuffer byteBuffer) {
        ensureAccessible();
        ByteBuffer byteBufferInternalNioBuffer = internalNioBuffer();
        if (byteBuffer == byteBufferInternalNioBuffer) {
            byteBuffer = byteBuffer.duplicate();
        }
        byteBufferInternalNioBuffer.clear().position(i2).limit(byteBuffer.remaining() + i2);
        byteBufferInternalNioBuffer.put(byteBuffer);
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf setBytes(int i2, byte[] bArr, int i3, int i4) {
        checkSrcIndex(i2, i4, i3, bArr.length);
        ByteBuffer byteBufferInternalNioBuffer = internalNioBuffer();
        byteBufferInternalNioBuffer.clear().position(i2).limit(i2 + i4);
        byteBufferInternalNioBuffer.put(bArr, i3, i4);
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf setInt(int i2, int i3) {
        ensureAccessible();
        _setInt(i2, i3);
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf setLong(int i2, long j2) {
        ensureAccessible();
        _setLong(i2, j2);
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf setMedium(int i2, int i3) {
        ensureAccessible();
        _setMedium(i2, i3);
        return this;
    }

    @Override // io.netty.buffer.AbstractByteBuf, io.netty.buffer.ByteBuf
    public ByteBuf setShort(int i2, int i3) {
        ensureAccessible();
        _setShort(i2, i3);
        return this;
    }

    @Override // io.netty.buffer.ByteBuf
    public ByteBuf unwrap() {
        return null;
    }
}
