@Override public void process(Buffer source, HeaderFieldTable.DecTable table, HeaderListener handler) { ObjectHolder<String> s = new ObjectHolder<>(); String name; int beginning = source.position(); byte b = source.get(); if ((b & 0b111111) == 0) { readString(source, s); name = s.getObj(); } else { source.position(beginning); int index = readInteger(source, 6); HeaderField e = table.get(index); name = e.getName(); } readString(source, s); String value = s.getObj(); HeaderField f = new HeaderField(name, value); table.put(f); handler.onDecodedHeader(name, value); }