public final class org.apache.hc.core.http.hpack.HPackEncoder extends java.lang.Object
{
private final org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable;
private final org.apache.hc.core.util.ByteArrayBuffer huffmanBuf;
private final java.nio.charset.CharsetEncoder charsetEncoder;
private java.nio.ByteBuffer tmpBuf;
private int maxTableSize;
void <init>(org.apache.hc.core.http.hpack.OutboundDynamicTable, java.nio.charset.CharsetEncoder)
{
org.apache.hc.core.util.ByteArrayBuffer v;
java.nio.charset.CharsetEncoder v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.http.hpack.OutboundDynamicTable;
v := @parameter: java.nio.charset.CharsetEncoder;
specialinvoke v.<java.lang.Object: void <init>()>();
if v == null goto label;
v = v;
goto label;
label:
v = new org.apache.hc.core.http.hpack.OutboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: void <init>()>();
label:
v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable> = v;
v = new org.apache.hc.core.util.ByteArrayBuffer;
specialinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void <init>(int)>(128);
v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf> = v;
v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder> = v;
return;
}
void <init>(org.apache.hc.core.http.hpack.OutboundDynamicTable, java.nio.charset.Charset)
{
java.nio.charset.Charset v, v;
java.nio.charset.CharsetEncoder v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.http.hpack.OutboundDynamicTable;
v := @parameter: java.nio.charset.Charset;
if v == null goto label;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset US_ASCII>;
v = virtualinvoke v.<java.nio.charset.Charset: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = virtualinvoke v.<java.nio.charset.Charset: java.nio.charset.CharsetEncoder newEncoder()>();
goto label;
label:
v = null;
label:
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void <init>(org.apache.hc.core.http.hpack.OutboundDynamicTable,java.nio.charset.CharsetEncoder)>(v, v);
return;
}
public void <init>(java.nio.charset.Charset)
{
org.apache.hc.core.http.hpack.HPackEncoder v;
java.nio.charset.Charset v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: java.nio.charset.Charset;
v = new org.apache.hc.core.http.hpack.OutboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void <init>(org.apache.hc.core.http.hpack.OutboundDynamicTable,java.nio.charset.Charset)>(v, v);
return;
}
public void <init>(java.nio.charset.CharsetEncoder)
{
org.apache.hc.core.http.hpack.HPackEncoder v;
java.nio.charset.CharsetEncoder v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: java.nio.charset.CharsetEncoder;
v = new org.apache.hc.core.http.hpack.OutboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void <init>(org.apache.hc.core.http.hpack.OutboundDynamicTable,java.nio.charset.CharsetEncoder)>(v, v);
return;
}
static void encodeInt(org.apache.hc.core.util.ByteArrayBuffer, int, int, int)
{
org.apache.hc.core.util.ByteArrayBuffer v;
int v, v, v, v, v, v, v, v, v, v;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = 8 - v;
v = 255 >>> v;
if v >= v goto label;
v = v | v;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
goto label;
label:
v = v | v;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
v = v - v;
label:
if v < 128 goto label;
v = v & 127;
v = v | 128;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
v = v >>> 7;
goto label;
label:
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
label:
return;
}
static void encodeHuffman(org.apache.hc.core.util.ByteArrayBuffer, java.nio.ByteBuffer)
{
org.apache.hc.core.http.hpack.HuffmanEncoder v;
org.apache.hc.core.util.ByteArrayBuffer v;
java.nio.ByteBuffer v;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.nio.ByteBuffer;
v = <org.apache.hc.core.http.hpack.Huffman: org.apache.hc.core.http.hpack.HuffmanEncoder ENCODER>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HuffmanEncoder: void encode(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
return;
}
void encodeString(org.apache.hc.core.util.ByteArrayBuffer, java.nio.ByteBuffer, boolean)
{
byte[] v;
java.nio.ByteBuffer v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v, v, v, v, v, v;
int v, v, v, v, v, v;
boolean v;
org.apache.hc.core.http.hpack.HuffmanEncoder v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: boolean;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v == 0 goto label;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
v = <org.apache.hc.core.http.hpack.Huffman: org.apache.hc.core.http.hpack.HuffmanEncoder ENCODER>;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HuffmanEncoder: void encode(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
v = v + 8;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, 7, v, 128);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: byte[] array()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(byte[],int,int)>(v, 0, v);
goto label;
label:
v = v + 8;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, 7, v, 0);
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(java.nio.ByteBuffer)>(v);
label:
return;
}
private void clearState()
{
java.nio.charset.CharsetEncoder v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
java.nio.ByteBuffer v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
if v == null goto label;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
label:
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
if v == null goto label;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder reset()>();
label:
return;
}
private void expandCapacity(int)
{
int v;
org.apache.hc.core.http.hpack.HPackEncoder v;
java.nio.ByteBuffer v, v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: int;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf> = v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
return;
}
private void ensureCapacity(int)
{
java.nio.ByteBuffer v, v, v, v;
int v, v, v, v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: int;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
if v != null goto label;
v = staticinvoke <java.lang.Math: int max(int,int)>(256, v);
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf> = v;
label:
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v + v;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
if v <= v goto label;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void expandCapacity(int)>(v);
label:
return;
}
int encodeString(org.apache.hc.core.util.ByteArrayBuffer, java.lang.CharSequence, int, int, boolean) throws java.nio.charset.CharacterCodingException
{
byte[] v;
java.nio.ByteBuffer v, v, v, v, v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v, v, v, v, v, v;
boolean v, v, v, v;
java.lang.CharSequence v;
java.nio.CharBuffer v;
org.apache.hc.core.http.hpack.HuffmanEncoder v;
java.nio.charset.CharsetEncoder v, v, v, v;
float v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
java.nio.charset.CoderResult v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
char v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void clearState()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
if v != null goto label;
if v == 0 goto label;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void clear()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
v = <org.apache.hc.core.http.hpack.Huffman: org.apache.hc.core.http.hpack.HuffmanEncoder ENCODER>;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HuffmanEncoder: void encode(org.apache.hc.core.util.ByteArrayBuffer,java.lang.CharSequence,int,int)>(v, v, v, v);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
v = v + 8;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, 7, v, 128);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: byte[] array()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.util.ByteArrayBuffer huffmanBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(byte[],int,int)>(v, 0, v);
goto label;
label:
v = v + 8;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void ensureCapacity(int)>(v);
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, 7, v, 0);
v = 0;
label:
if v >= v goto label;
v = v + v;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(int)>(v);
v = v + 1;
goto label;
label:
return v;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v <= 0 goto label;
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer wrap(java.lang.CharSequence,int,int)>(v, v, v);
label:
v = virtualinvoke v.<java.nio.CharBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = virtualinvoke v.<java.nio.CharBuffer: int remaining()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: float averageBytesPerChar()>();
v = v * v;
v = v + 8;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void ensureCapacity(int)>(v);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CoderResult encode(java.nio.CharBuffer,java.nio.ByteBuffer,boolean)>(v, v, 1);
v = virtualinvoke v.<java.nio.charset.CoderResult: boolean isError()>();
if v == 0 goto label;
virtualinvoke v.<java.nio.charset.CoderResult: void throwException()>();
goto label;
label:
specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void ensureCapacity(int)>(8);
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.charset.CharsetEncoder charsetEncoder>;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CoderResult flush(java.nio.ByteBuffer)>(v);
v = virtualinvoke v.<java.nio.charset.CoderResult: boolean isError()>();
if v == 0 goto label;
virtualinvoke v.<java.nio.charset.CoderResult: void throwException()>();
label:
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: java.nio.ByteBuffer tmpBuf>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeString(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer,boolean)>(v, v, v);
return v;
}
int encodeString(org.apache.hc.core.util.ByteArrayBuffer, java.lang.String, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.util.ByteArrayBuffer v;
int v, v;
java.lang.String v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = virtualinvoke v.<java.lang.String: int length()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: int encodeString(org.apache.hc.core.util.ByteArrayBuffer,java.lang.CharSequence,int,int,boolean)>(v, v, 0, v, v);
return v;
}
void encodeLiteralHeader(org.apache.hc.core.util.ByteArrayBuffer, org.apache.hc.core.http.hpack.HPackEntry, org.apache.hc.core.http.Header, org.apache.hc.core.http.hpack.HPackRepresentation, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.http.Header v;
org.apache.hc.core.http.hpack.HPackRepresentation v;
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.hpack.HPackEntry v;
java.lang.String v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: org.apache.hc.core.http.hpack.HPackEntry;
v := @parameter: org.apache.hc.core.http.Header;
v := @parameter: org.apache.hc.core.http.hpack.HPackRepresentation;
v := @parameter: boolean;
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getName()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: boolean isSensitive()>();
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeLiteralHeader(org.apache.hc.core.util.ByteArrayBuffer,org.apache.hc.core.http.hpack.HPackEntry,java.lang.String,java.lang.String,boolean,org.apache.hc.core.http.hpack.HPackRepresentation,boolean)>(v, v, v, v, v, v, v);
return;
}
void encodeLiteralHeader(org.apache.hc.core.util.ByteArrayBuffer, org.apache.hc.core.http.hpack.HPackEntry, java.lang.String, java.lang.String, boolean, org.apache.hc.core.http.hpack.HPackRepresentation, boolean) throws java.nio.charset.CharacterCodingException
{
java.lang.IllegalStateException v;
org.apache.hc.core.http.hpack.HPackRepresentation v, v;
org.apache.hc.core.util.ByteArrayBuffer v;
byte v, v;
int[] v;
int v, v, v, v, v;
org.apache.hc.core.http.hpack.HPackEntry v;
java.lang.String v, v, v, v;
boolean v, v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackEncoder v;
org.apache.hc.core.http.hpack.HPackHeader v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: org.apache.hc.core.http.hpack.HPackEntry;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.hc.core.http.hpack.HPackRepresentation;
v := @parameter: boolean;
v = <org.apache.hc.core.http.hpack.HPackEncoder$1: int[] $SwitchMap$org$apache$hc$core5$http2$hpack$HPackRepresentation>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackRepresentation: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = 64;
v = 6;
goto label;
label:
v = 0;
v = 4;
goto label;
label:
v = 16;
v = 4;
goto label;
label:
v = new java.lang.IllegalStateException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hc.core.http.hpack.HPackRepresentation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unexpected value: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
v = interfaceinvoke v.<org.apache.hc.core.http.hpack.HPackEntry: int getIndex()>();
goto label;
label:
v = 0;
label:
if v > 0 goto label;
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, v, 0, v);
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: int encodeString(org.apache.hc.core.util.ByteArrayBuffer,java.lang.String,boolean)>(v, v, v);
goto label;
label:
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, v, v, v);
v = interfaceinvoke v.<org.apache.hc.core.http.hpack.HPackEntry: org.apache.hc.core.http.hpack.HPackHeader getHeader()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: int getNameLen()>();
label:
if v == null goto label;
v = v;
goto label;
label:
v = "";
label:
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: int encodeString(org.apache.hc.core.util.ByteArrayBuffer,java.lang.String,boolean)>(v, v, v);
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITH_INDEXING>;
if v != v goto label;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable>;
v = new org.apache.hc.core.http.hpack.HPackHeader;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: void <init>(java.lang.String,int,java.lang.String,int,boolean)>(v, v, v, v, v);
virtualinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: void add(org.apache.hc.core.http.hpack.HPackHeader)>(v);
label:
return;
}
void encodeIndex(org.apache.hc.core.util.ByteArrayBuffer, int)
{
int v;
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: int;
staticinvoke <org.apache.hc.core.http.hpack.HPackEncoder: void encodeInt(org.apache.hc.core.util.ByteArrayBuffer,int,int,int)>(v, 7, v, 128);
return;
}
private int findFullMatch(java.util.List, java.lang.String)
{
java.util.List v;
int v, v, v;
java.lang.Object v;
java.lang.String v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v, v;
org.apache.hc.core.http.hpack.HPackHeader v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: java.util.List;
v := @parameter: java.lang.String;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
return 0;
label:
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = interfaceinvoke v.<org.apache.hc.core.http.hpack.HPackEntry: org.apache.hc.core.http.hpack.HPackHeader getHeader()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getValue()>();
v = staticinvoke <org.apache.hc.core.util.LangUtils: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.hc.core.http.hpack.HPackEntry: int getIndex()>();
return v;
label:
v = v + 1;
goto label;
label:
return 0;
}
void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer, org.apache.hc.core.http.Header, boolean, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.http.Header v;
org.apache.hc.core.util.ByteArrayBuffer v;
java.lang.String v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v, v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: org.apache.hc.core.http.Header;
v := @parameter: boolean;
v := @parameter: boolean;
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getName()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: boolean isSensitive()>();
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer,java.lang.String,java.lang.String,boolean,boolean,boolean)>(v, v, v, v, v, v);
return;
}
void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer, java.lang.String, java.lang.String, boolean, boolean, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.http.hpack.HPackRepresentation v, v;
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.hpack.StaticTable v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v, v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v, v;
java.util.List v, v, v;
java.lang.Object v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
if v == 0 goto label;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation NEVER_INDEXED>;
goto label;
label:
if v == 0 goto label;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITHOUT_INDEXING>;
goto label;
label:
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITH_INDEXING>;
label:
v = <org.apache.hc.core.http.hpack.StaticTable: org.apache.hc.core.http.hpack.StaticTable INSTANCE>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.StaticTable: java.util.List getByName(java.lang.String)>(v);
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITH_INDEXING>;
if v != v goto label;
v = specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: int findFullMatch(java.util.List,java.lang.String)>(v, v);
if v <= 0 goto label;
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeIndex(org.apache.hc.core.util.ByteArrayBuffer,int)>(v, v);
return;
label:
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: java.util.List getByName(java.lang.String)>(v);
v = specialinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: int findFullMatch(java.util.List,java.lang.String)>(v, v);
if v <= 0 goto label;
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeIndex(org.apache.hc.core.util.ByteArrayBuffer,int)>(v, v);
return;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
goto label;
label:
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: java.util.List getByName(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
label:
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeLiteralHeader(org.apache.hc.core.util.ByteArrayBuffer,org.apache.hc.core.http.hpack.HPackEntry,java.lang.String,java.lang.String,boolean,org.apache.hc.core.http.hpack.HPackRepresentation,boolean)>(v, v, v, v, v, v, v);
return;
}
void encodeHeaders(org.apache.hc.core.util.ByteArrayBuffer, java.util.List, boolean, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.util.ByteArrayBuffer v;
java.util.List v;
int v, v;
java.lang.Object v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v, v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.util.List;
v := @parameter: boolean;
v := @parameter: boolean;
v = 0;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer,org.apache.hc.core.http.Header,boolean,boolean)>(v, v, v, v);
v = v + 1;
goto label;
label:
return;
}
public void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer, org.apache.hc.core.http.Header) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.Header v;
java.lang.String v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: org.apache.hc.core.http.Header;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "ByteArrayBuffer");
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Header");
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getName()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: java.lang.String getValue()>();
v = interfaceinvoke v.<org.apache.hc.core.http.Header: boolean isSensitive()>();
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer,java.lang.String,java.lang.String,boolean)>(v, v, v, v);
return;
}
public void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer, java.lang.String, java.lang.String, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.util.ByteArrayBuffer v;
java.lang.String v, v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "ByteArrayBuffer");
staticinvoke <org.apache.hc.core.util.Args: java.lang.CharSequence notEmpty(java.lang.CharSequence,java.lang.String)>(v, "Header name");
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeHeader(org.apache.hc.core.util.ByteArrayBuffer,java.lang.String,java.lang.String,boolean,boolean,boolean)>(v, v, v, v, 0, 1);
return;
}
public void encodeHeaders(org.apache.hc.core.util.ByteArrayBuffer, java.util.List, boolean) throws java.nio.charset.CharacterCodingException
{
org.apache.hc.core.util.ByteArrayBuffer v;
java.util.List v;
org.apache.hc.core.http.hpack.HPackEncoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.util.List;
v := @parameter: boolean;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "ByteArrayBuffer");
staticinvoke <org.apache.hc.core.util.Args: java.util.Collection notEmpty(java.util.Collection,java.lang.String)>(v, "Header list");
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackEncoder: void encodeHeaders(org.apache.hc.core.util.ByteArrayBuffer,java.util.List,boolean,boolean)>(v, v, 0, v);
return;
}
public int getMaxTableSize()
{
int v;
org.apache.hc.core.http.hpack.HPackEncoder v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: int maxTableSize>;
return v;
}
public void setMaxTableSize(int)
{
int v;
org.apache.hc.core.http.hpack.HPackEncoder v;
org.apache.hc.core.http.hpack.OutboundDynamicTable v;
v := @this: org.apache.hc.core.http.hpack.HPackEncoder;
v := @parameter: int;
staticinvoke <org.apache.hc.core.util.Args: int notNegative(int,java.lang.String)>(v, "Max table size");
v.<org.apache.hc.core.http.hpack.HPackEncoder: int maxTableSize> = v;
v = v.<org.apache.hc.core.http.hpack.HPackEncoder: org.apache.hc.core.http.hpack.OutboundDynamicTable dynamicTable>;
virtualinvoke v.<org.apache.hc.core.http.hpack.OutboundDynamicTable: void setMaxSize(int)>(v);
return;
}
}