@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);
  }