public final class org.apache.hc.core.http.hpack.HPackDecoder extends java.lang.Object
{
private static final java.lang.String UNEXPECTED_EOS;
private static final java.lang.String MAX_LIMIT_EXCEEDED;
private final org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable;
private final org.apache.hc.core.util.ByteArrayBuffer contentBuf;
private final java.nio.charset.CharsetDecoder charsetDecoder;
private java.nio.CharBuffer tmpBuf;
private int maxTableSize;
private int maxListSize;
void <init>(org.apache.hc.core.http.hpack.InboundDynamicTable, java.nio.charset.CharsetDecoder)
{
org.apache.hc.core.http.hpack.HPackDecoder v;
org.apache.hc.core.util.ByteArrayBuffer v;
int v;
org.apache.hc.core.http.hpack.InboundDynamicTable v, v;
java.nio.charset.CharsetDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: org.apache.hc.core.http.hpack.InboundDynamicTable;
v := @parameter: java.nio.charset.CharsetDecoder;
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.InboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void <init>()>();
label:
v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable> = v;
v = new org.apache.hc.core.util.ByteArrayBuffer;
specialinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void <init>(int)>(256);
v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf> = v;
v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder> = v;
if v == null goto label;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: int getMaxSize()>();
goto label;
label:
v = 2147483647;
label:
v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxTableSize> = v;
v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxListSize> = 2147483647;
return;
}
void <init>(org.apache.hc.core.http.hpack.InboundDynamicTable, java.nio.charset.Charset)
{
org.apache.hc.core.http.hpack.HPackDecoder v;
java.nio.charset.Charset v, v;
org.apache.hc.core.http.hpack.InboundDynamicTable v;
java.nio.charset.CharsetDecoder v;
boolean v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: org.apache.hc.core.http.hpack.InboundDynamicTable;
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.CharsetDecoder newDecoder()>();
goto label;
label:
v = null;
label:
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void <init>(org.apache.hc.core.http.hpack.InboundDynamicTable,java.nio.charset.CharsetDecoder)>(v, v);
return;
}
public void <init>(java.nio.charset.Charset)
{
org.apache.hc.core.http.hpack.InboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackDecoder v;
java.nio.charset.Charset v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.charset.Charset;
v = new org.apache.hc.core.http.hpack.InboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void <init>(org.apache.hc.core.http.hpack.InboundDynamicTable,java.nio.charset.Charset)>(v, v);
return;
}
public void <init>(java.nio.charset.CharsetDecoder)
{
org.apache.hc.core.http.hpack.InboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackDecoder v;
java.nio.charset.CharsetDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.charset.CharsetDecoder;
v = new org.apache.hc.core.http.hpack.InboundDynamicTable;
specialinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void <init>()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void <init>(org.apache.hc.core.http.hpack.InboundDynamicTable,java.nio.charset.CharsetDecoder)>(v, v);
return;
}
static int readByte(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
short v;
byte v;
org.apache.hc.core.http.hpack.HPackException v;
java.nio.ByteBuffer v;
boolean v;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Unexpected end of HPACK data");
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: byte get()>();
v = v & 255;
return v;
}
static int peekByte(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
short v;
byte v;
org.apache.hc.core.http.hpack.HPackException v;
int v;
java.nio.ByteBuffer v;
boolean v;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v != 0 goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Unexpected end of HPACK data");
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = virtualinvoke v.<java.nio.ByteBuffer: byte get()>();
v = v & 255;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
return v;
}
static int decodeInt(java.nio.ByteBuffer, int) throws org.apache.hc.core.http.hpack.HPackException
{
java.nio.ByteBuffer v;
org.apache.hc.core.http.hpack.HPackException v;
int v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = 8 - v;
v = 255 >>> v;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int readByte(java.nio.ByteBuffer)>(v);
v = v & v;
if v >= v goto label;
return v;
label:
v = 0;
label:
if v >= 32 goto label;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int readByte(java.nio.ByteBuffer)>(v);
v = v & 128;
if v == 0 goto label;
v = v & 127;
v = v << v;
v = v + v;
v = v + 7;
goto label;
label:
if v != 28 goto label;
v = v & 248;
if v != 0 goto label;
label:
v = v << v;
v = v + v;
return v;
label:
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Max integer exceeded");
throw v;
}
static void decodePlainString(org.apache.hc.core.util.ByteArrayBuffer, java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
java.nio.ByteBuffer v;
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.hpack.HPackException v;
int v, v, v, v, v;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int decodeInt(java.nio.ByteBuffer,int)>(v, 7);
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Unexpected end of HPACK data");
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = v - v;
v = v - v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void append(java.nio.ByteBuffer)>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
return;
}
static void decodeHuffman(org.apache.hc.core.util.ByteArrayBuffer, java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
java.nio.ByteBuffer v;
org.apache.hc.core.util.ByteArrayBuffer v;
org.apache.hc.core.http.hpack.HPackException v;
int v, v, v, v, v;
org.apache.hc.core.http.hpack.HuffmanDecoder v;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int decodeInt(java.nio.ByteBuffer,int)>(v, 7);
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
if v <= v goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Unexpected end of HPACK data");
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v = virtualinvoke v.<java.nio.ByteBuffer: int position()>();
v = v + v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
v = <org.apache.hc.core.http.hpack.Huffman: org.apache.hc.core.http.hpack.HuffmanDecoder DECODER>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HuffmanDecoder: void decode(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer limit(int)>(v);
return;
}
void decodeString(org.apache.hc.core.util.ByteArrayBuffer, java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
org.apache.hc.core.http.hpack.HPackDecoder v;
org.apache.hc.core.util.ByteArrayBuffer v;
int v, v;
java.nio.ByteBuffer v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: org.apache.hc.core.util.ByteArrayBuffer;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int peekByte(java.nio.ByteBuffer)>(v);
v = v & 128;
if v != 128 goto label;
staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: void decodeHuffman(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
goto label;
label:
staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: void decodePlainString(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
label:
return;
}
private void clearState()
{
org.apache.hc.core.http.hpack.HPackDecoder v;
org.apache.hc.core.util.ByteArrayBuffer v;
java.nio.CharBuffer v, v;
java.nio.charset.CharsetDecoder v, v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
if v == null goto label;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
virtualinvoke v.<java.nio.CharBuffer: java.nio.CharBuffer clear()>();
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder>;
if v == null goto label;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder>;
virtualinvoke v.<java.nio.charset.CharsetDecoder: java.nio.charset.CharsetDecoder reset()>();
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf>;
virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: void clear()>();
return;
}
private void expandCapacity(int)
{
org.apache.hc.core.http.hpack.HPackDecoder v;
java.nio.CharBuffer v, v, v;
int v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: int;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer allocate(int)>(v);
v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf> = v;
virtualinvoke v.<java.nio.CharBuffer: java.nio.CharBuffer flip()>();
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
virtualinvoke v.<java.nio.CharBuffer: java.nio.CharBuffer put(java.nio.CharBuffer)>(v);
return;
}
private void ensureCapacity(int)
{
java.nio.CharBuffer v, v, v, v;
org.apache.hc.core.http.hpack.HPackDecoder v;
int v, v, v, v, v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: int;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
if v != null goto label;
v = staticinvoke <java.lang.Math: int max(int,int)>(256, v);
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer allocate(int)>(v);
v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf> = v;
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.CharBuffer: int remaining()>();
v = v + v;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.CharBuffer: int capacity()>();
if v <= v goto label;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void expandCapacity(int)>(v);
label:
return;
}
int decodeString(java.nio.ByteBuffer, java.lang.StringBuilder) throws org.apache.hc.core.http.hpack.HPackException, java.nio.charset.CharacterCodingException
{
byte[] v;
java.nio.ByteBuffer v, v;
org.apache.hc.core.http.hpack.HPackDecoder v;
org.apache.hc.core.util.ByteArrayBuffer v, v, v, v;
java.nio.charset.CoderResult v, v;
int v, v, v, v, v;
boolean v, v, v;
java.nio.CharBuffer v, v, v, v;
java.nio.charset.CharsetDecoder v, v, v;
java.lang.StringBuilder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.lang.StringBuilder;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void clearState()>();
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf>;
virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void decodeString(org.apache.hc.core.util.ByteArrayBuffer,java.nio.ByteBuffer)>(v, v);
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int length()>();
if v != 0 goto label;
return 0;
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder>;
if v != null goto label;
virtualinvoke v.<java.lang.StringBuilder: void ensureCapacity(int)>(v);
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: int byteAt(int)>(v);
v = v & 255;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
v = v + 1;
goto label;
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.util.ByteArrayBuffer contentBuf>;
v = virtualinvoke v.<org.apache.hc.core.util.ByteArrayBuffer: byte[] array()>();
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[],int,int)>(v, 0, v);
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: int remaining()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: void ensureCapacity(int)>(v);
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder>;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.charset.CharsetDecoder: java.nio.charset.CoderResult decode(java.nio.ByteBuffer,java.nio.CharBuffer,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.HPackDecoder: void ensureCapacity(int)>(8);
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.charset.CharsetDecoder charsetDecoder>;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
v = virtualinvoke v.<java.nio.charset.CharsetDecoder: java.nio.charset.CoderResult flush(java.nio.CharBuffer)>(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.HPackDecoder: java.nio.CharBuffer tmpBuf>;
virtualinvoke v.<java.nio.CharBuffer: java.nio.CharBuffer flip()>();
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: java.nio.CharBuffer tmpBuf>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.CharSequence)>(v);
label:
return v;
}
org.apache.hc.core.http.hpack.HPackHeader decodeLiteralHeader(java.nio.ByteBuffer, org.apache.hc.core.http.hpack.HPackRepresentation) throws org.apache.hc.core.http.hpack.HPackException, java.nio.charset.CharacterCodingException
{
org.apache.hc.core.http.hpack.HPackRepresentation v, v, v, v;
java.nio.ByteBuffer v;
org.apache.hc.core.http.hpack.HPackDecoder v;
byte v;
int v, v, v, v;
java.lang.String v, v, v;
boolean v;
org.apache.hc.core.http.hpack.HPackException v;
org.apache.hc.core.http.hpack.InboundDynamicTable v, v;
java.lang.StringBuilder v, v;
org.apache.hc.core.http.hpack.HPackHeader v, v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: org.apache.hc.core.http.hpack.HPackRepresentation;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITH_INDEXING>;
if v != v goto label;
v = 6;
goto label;
label:
v = 4;
label:
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int decodeInt(java.nio.ByteBuffer,int)>(v, v);
if v != 0 goto label;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: int decodeString(java.nio.ByteBuffer,java.lang.StringBuilder)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
goto label;
label:
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: org.apache.hc.core.http.hpack.HPackHeader getHeader(int)>(v);
if v != null goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Invalid header index");
throw v;
label:
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: int getNameLen()>();
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: int decodeString(java.nio.ByteBuffer,java.lang.StringBuilder)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = new org.apache.hc.core.http.hpack.HPackHeader;
v = v;
v = v;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation NEVER_INDEXED>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
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);
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.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable>;
virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void add(org.apache.hc.core.http.hpack.HPackHeader)>(v);
label:
return v;
}
org.apache.hc.core.http.hpack.HPackHeader decodeIndexedHeader(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
org.apache.hc.core.http.hpack.HPackDecoder v;
org.apache.hc.core.http.hpack.HPackException v;
int v;
org.apache.hc.core.http.hpack.InboundDynamicTable v;
java.nio.ByteBuffer v;
org.apache.hc.core.http.hpack.HPackHeader v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int decodeInt(java.nio.ByteBuffer,int)>(v, 7);
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: org.apache.hc.core.http.hpack.HPackHeader getHeader(int)>(v);
if v != null goto label;
v = new org.apache.hc.core.http.hpack.HPackException;
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>("Invalid header index");
throw v;
label:
return v;
}
public org.apache.hc.core.http.Header decodeHeader(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
org.apache.hc.core.http.message.BasicHeader v;
org.apache.hc.core.http.hpack.HPackDecoder v;
java.lang.String v, v;
java.nio.ByteBuffer v;
boolean v;
org.apache.hc.core.http.hpack.HPackHeader v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeHPackHeader(java.nio.ByteBuffer)>(v);
if v == null goto label;
v = new org.apache.hc.core.http.message.BasicHeader;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getValue()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: boolean isSensitive()>();
specialinvoke v.<org.apache.hc.core.http.message.BasicHeader: void <init>(java.lang.String,java.lang.Object,boolean)>(v, v, v);
goto label;
label:
v = null;
label:
return v;
}
org.apache.hc.core.http.hpack.HPackHeader decodeHPackHeader(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
java.nio.charset.CharacterCodingException v;
org.apache.hc.core.http.hpack.HPackRepresentation v, v, v;
java.nio.ByteBuffer v;
org.apache.hc.core.http.hpack.HPackDecoder v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
boolean v;
org.apache.hc.core.http.hpack.HPackException v, v;
org.apache.hc.core.http.hpack.InboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackHeader v, v, v, v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int peekByte(java.nio.ByteBuffer)>(v);
v = v & 128;
if v != 128 goto label;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeIndexedHeader(java.nio.ByteBuffer)>(v);
label:
return v;
label:
v = v & 192;
if v != 64 goto label;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITH_INDEXING>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeLiteralHeader(java.nio.ByteBuffer,org.apache.hc.core.http.hpack.HPackRepresentation)>(v, v);
label:
return v;
label:
v = v & 240;
if v != 0 goto label;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation WITHOUT_INDEXING>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeLiteralHeader(java.nio.ByteBuffer,org.apache.hc.core.http.hpack.HPackRepresentation)>(v, v);
label:
return v;
label:
v = v & 240;
if v != 16 goto label;
v = <org.apache.hc.core.http.hpack.HPackRepresentation: org.apache.hc.core.http.hpack.HPackRepresentation NEVER_INDEXED>;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeLiteralHeader(java.nio.ByteBuffer,org.apache.hc.core.http.hpack.HPackRepresentation)>(v, v);
label:
return v;
label:
v = v & 224;
if v != 32 goto label;
v = staticinvoke <org.apache.hc.core.http.hpack.HPackDecoder: int decodeInt(java.nio.ByteBuffer,int)>(v, 5);
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable>;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxTableSize>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void setMaxSize(int)>(v);
goto label;
label:
v = new org.apache.hc.core.http.hpack.HPackException;
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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 header first byte: 0x\u0001");
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String)>(v);
throw v;
label:
return null;
label:
v := @caughtexception;
v = new org.apache.hc.core.http.hpack.HPackException;
v = virtualinvoke v.<java.nio.charset.CharacterCodingException: java.lang.String getMessage()>();
specialinvoke v.<org.apache.hc.core.http.hpack.HPackException: void <init>(java.lang.String,java.lang.Exception)>(v, v);
throw v;
catch java.nio.charset.CharacterCodingException from label to label with label;
catch java.nio.charset.CharacterCodingException from label to label with label;
catch java.nio.charset.CharacterCodingException from label to label with label;
catch java.nio.charset.CharacterCodingException from label to label with label;
catch java.nio.charset.CharacterCodingException from label to label with label;
}
public java.util.List decodeHeaders(java.nio.ByteBuffer) throws org.apache.hc.core.http.hpack.HPackException
{
java.nio.ByteBuffer v;
java.util.ArrayList v;
org.apache.hc.core.http.message.BasicHeader v;
org.apache.hc.core.http.hpack.HPackDecoder v;
int v, v, v, v;
java.lang.String v, v;
boolean v, v, v, v;
org.apache.hc.core.http.hpack.HeaderListConstraintException v;
org.apache.hc.core.http.hpack.HPackHeader v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxListSize>;
if v >= 2147483647 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = 0;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
label:
v = virtualinvoke v.<java.nio.ByteBuffer: boolean hasRemaining()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.HPackHeader decodeHPackHeader(java.nio.ByteBuffer)>(v);
if v == null goto label;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: int getTotalSize()>();
v = v + v;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxListSize>;
if v < v goto label;
v = new org.apache.hc.core.http.hpack.HeaderListConstraintException;
specialinvoke v.<org.apache.hc.core.http.hpack.HeaderListConstraintException: void <init>(java.lang.String)>("Maximum header list size exceeded");
throw v;
label:
v = new org.apache.hc.core.http.message.BasicHeader;
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: java.lang.String getValue()>();
v = virtualinvoke v.<org.apache.hc.core.http.hpack.HPackHeader: boolean isSensitive()>();
specialinvoke v.<org.apache.hc.core.http.message.BasicHeader: void <init>(java.lang.String,java.lang.Object,boolean)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public int getMaxTableSize()
{
int v;
org.apache.hc.core.http.hpack.HPackDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxTableSize>;
return v;
}
public void setMaxTableSize(int)
{
int v;
org.apache.hc.core.http.hpack.InboundDynamicTable v;
org.apache.hc.core.http.hpack.HPackDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
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.HPackDecoder: int maxTableSize> = v;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: org.apache.hc.core.http.hpack.InboundDynamicTable dynamicTable>;
virtualinvoke v.<org.apache.hc.core.http.hpack.InboundDynamicTable: void setMaxSize(int)>(v);
return;
}
public int getMaxListSize()
{
int v;
org.apache.hc.core.http.hpack.HPackDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v = v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxListSize>;
return v;
}
public void setMaxListSize(int)
{
int v;
org.apache.hc.core.http.hpack.HPackDecoder v;
v := @this: org.apache.hc.core.http.hpack.HPackDecoder;
v := @parameter: int;
staticinvoke <org.apache.hc.core.util.Args: int notNegative(int,java.lang.String)>(v, "Max list size");
v.<org.apache.hc.core.http.hpack.HPackDecoder: int maxListSize> = v;
return;
}
}