public void setMaxHeaderListSize(int value) { hpackEncoder.setMaxHeaderListSize(value); } }
public void setHeaderTableSize(int headerTableSize) { hpackEncoder.setRemoteMaxDynamicTableSize(headerTableSize); }
encodeMaxDynamicTableSize(buffer,maxDynamicTableSize); encode(buffer,new HttpField(HttpHeader.C_SCHEME,scheme==null?HttpScheme.HTTP.asString():scheme)); encode(buffer,new HttpField(HttpHeader.C_METHOD,request.getMethod())); encode(buffer,new HttpField(HttpHeader.C_AUTHORITY,request.getURI().getAuthority())); encode(buffer,new HttpField(HttpHeader.C_PATH,request.getURI().getPathQuery())); if (status==null) status=new HttpField.IntValueHttpField(HttpHeader.C_STATUS,code); encode(buffer,status); encode(buffer, CONNECTION_TE); encode(buffer, TE_TRAILERS); encode(buffer,field);
encoder.encode(hpacked, metaData); int hpackedLength = hpacked.position(); BufferUtil.flipToFlush(hpacked, 0);
public Generator(ByteBufferPool byteBufferPool, int maxDynamicTableSize, int maxHeaderBlockFragment) { this.byteBufferPool = byteBufferPool; headerGenerator = new HeaderGenerator(); hpackEncoder = new HpackEncoder(maxDynamicTableSize); this.generators = new FrameGenerator[FrameType.values().length]; this.generators[FrameType.HEADERS.getType()] = new HeadersGenerator(headerGenerator, hpackEncoder, maxHeaderBlockFragment); this.generators[FrameType.PRIORITY.getType()] = new PriorityGenerator(headerGenerator); this.generators[FrameType.RST_STREAM.getType()] = new ResetGenerator(headerGenerator); this.generators[FrameType.SETTINGS.getType()] = new SettingsGenerator(headerGenerator); this.generators[FrameType.PUSH_PROMISE.getType()] = new PushPromiseGenerator(headerGenerator, hpackEncoder); this.generators[FrameType.PING.getType()] = new PingGenerator(headerGenerator); this.generators[FrameType.GO_AWAY.getType()] = new GoAwayGenerator(headerGenerator); this.generators[FrameType.WINDOW_UPDATE.getType()] = new WindowUpdateGenerator(headerGenerator); this.generators[FrameType.CONTINUATION.getType()] = null; // Never generated explicitly. this.generators[FrameType.PREFACE.getType()] = new PrefaceGenerator(); this.generators[FrameType.DISCONNECT.getType()] = new DisconnectGenerator(); this.dataGenerator = new DataGenerator(headerGenerator); }
encodeName(buffer,(byte)0x40,6,field.getName(),null); encodeValue(buffer,true,field.getValue()); if (_debug) encoding="LitHuffNHuffVIdx"; encodeName(buffer,(byte)0x00,4,field.getName(),null); encodeValue(buffer,true,field.getValue()); if (_debug) encoding="LitHuffNHuffV!Idx"; boolean never_index=__NEVER_INDEX.contains(header); boolean huffman=!__DO_NOT_HUFFMAN.contains(header); encodeName(buffer,never_index?(byte)0x10:(byte)0x00,4,header.asString(),name); encodeValue(buffer,huffman,field.getValue()); encodeName(buffer,(byte)0x00,4,header.asString(),name); encodeValue(buffer,true,field.getValue()); if (_debug) encoding="LitIdxNS"+(1+NBitInteger.octectsNeeded(4,_context.index(name)))+"HuffV!Idx"; encodeName(buffer,(byte)0x40,6,header.asString(),name); encodeValue(buffer,huffman,field.getValue()); if (_debug) encoding=((name==null)?"LitHuffN":("LitIdxN"+(name.isStatic()?"S":"")+(1+NBitInteger.octectsNeeded(6,_context.index(name)))))+
HpackEncoder.encodeValue(buffer,huffman,value);
encoder.encode(hpacked, metaData); int hpackedLength = hpacked.position(); BufferUtil.flipToFlush(hpacked, 0);
public Generator(ByteBufferPool byteBufferPool, int maxDynamicTableSize, int maxHeaderBlockFragment) { this.byteBufferPool = byteBufferPool; headerGenerator = new HeaderGenerator(); hpackEncoder = new HpackEncoder(maxDynamicTableSize); this.generators = new FrameGenerator[FrameType.values().length]; this.generators[FrameType.HEADERS.getType()] = new HeadersGenerator(headerGenerator, hpackEncoder, maxHeaderBlockFragment); this.generators[FrameType.PRIORITY.getType()] = new PriorityGenerator(headerGenerator); this.generators[FrameType.RST_STREAM.getType()] = new ResetGenerator(headerGenerator); this.generators[FrameType.SETTINGS.getType()] = new SettingsGenerator(headerGenerator); this.generators[FrameType.PUSH_PROMISE.getType()] = new PushPromiseGenerator(headerGenerator, hpackEncoder); this.generators[FrameType.PING.getType()] = new PingGenerator(headerGenerator); this.generators[FrameType.GO_AWAY.getType()] = new GoAwayGenerator(headerGenerator); this.generators[FrameType.WINDOW_UPDATE.getType()] = new WindowUpdateGenerator(headerGenerator); this.generators[FrameType.CONTINUATION.getType()] = null; // Never generated explicitly. this.generators[FrameType.PREFACE.getType()] = new PrefaceGenerator(); this.generators[FrameType.DISCONNECT.getType()] = new DisconnectGenerator(); this.dataGenerator = new DataGenerator(headerGenerator); }
ByteBuffer hpacked = lease.acquire(maxFrameSize, false); BufferUtil.clearToFill(hpacked); encoder.encode(hpacked, metaData); int hpackedLength = hpacked.position(); BufferUtil.flipToFlush(hpacked, 0);
public void setHeaderTableSize(int headerTableSize) { hpackEncoder.setRemoteMaxDynamicTableSize(headerTableSize); }
public void setMaxHeaderListSize(int value) { hpackEncoder.setMaxHeaderListSize(value); } }
ByteBuffer hpacked = lease.acquire(maxFrameSize, false); BufferUtil.clearToFill(hpacked); encoder.encode(hpacked, metaData); int hpackedLength = hpacked.position(); BufferUtil.flipToFlush(hpacked, 0);