package io.netty.handler.codec.spdy;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
import java.util.Objects;
import java.util.Set;

/* JADX INFO: loaded from: classes.dex */
public class SpdyHeaderBlockRawEncoder extends SpdyHeaderBlockEncoder {
    private final int version;

    public SpdyHeaderBlockRawEncoder(SpdyVersion spdyVersion) {
        Objects.requireNonNull(spdyVersion, "version");
        this.version = spdyVersion.getVersion();
    }

    private static void setLengthField(ByteBuf byteBuf, int i2, int i3) {
        byteBuf.setInt(i2, i3);
    }

    private static void writeLengthField(ByteBuf byteBuf, int i2) {
        byteBuf.writeInt(i2);
    }

    @Override // io.netty.handler.codec.spdy.SpdyHeaderBlockEncoder
    public ByteBuf encode(ByteBufAllocator byteBufAllocator, SpdyHeadersFrame spdyHeadersFrame) {
        Set<CharSequence> setNames = spdyHeadersFrame.headers().names();
        int size = setNames.size();
        if (size == 0) {
            return Unpooled.EMPTY_BUFFER;
        }
        if (size > 65535) {
            throw new IllegalArgumentException("header block contains too many headers");
        }
        ByteBuf byteBufHeapBuffer = byteBufAllocator.heapBuffer();
        writeLengthField(byteBufHeapBuffer, size);
        for (CharSequence charSequence : setNames) {
            writeLengthField(byteBufHeapBuffer, charSequence.length());
            ByteBufUtil.writeAscii(byteBufHeapBuffer, charSequence);
            int iWriterIndex = byteBufHeapBuffer.writerIndex();
            writeLengthField(byteBufHeapBuffer, 0);
            int i2 = 0;
            for (CharSequence charSequence2 : spdyHeadersFrame.headers().getAll(charSequence)) {
                int length = charSequence2.length();
                if (length > 0) {
                    ByteBufUtil.writeAscii(byteBufHeapBuffer, charSequence2);
                    byteBufHeapBuffer.writeByte(0);
                    i2 += length + 1;
                }
            }
            if (i2 != 0) {
                i2--;
            }
            if (i2 > 65535) {
                throw new IllegalArgumentException("header exceeds allowable length: " + ((Object) charSequence));
            }
            if (i2 > 0) {
                setLengthField(byteBufHeapBuffer, iWriterIndex, i2);
                byteBufHeapBuffer.writerIndex(byteBufHeapBuffer.writerIndex() - 1);
            }
        }
        return byteBufHeapBuffer;
    }

    @Override // io.netty.handler.codec.spdy.SpdyHeaderBlockEncoder
    public void end() {
    }
}
