code: private boolean readMetaTable(ReadStream is, int crc)
      throws IOException
    {
      byte []key = new byte[TABLE_KEY_SIZE];
      
      is.read(key, 0, key.length);
      crc = Crc32Caucho.generate(crc, key);
      
      int rowLength = BitsUtil.readInt16(is);
      crc = Crc32Caucho.generateInt16(crc, rowLength);
      
      int keyOffset = BitsUtil.readInt16(is);
      crc = Crc32Caucho.generateInt16(crc, keyOffset);
      
      int keyLength = BitsUtil.readInt16(is);
      crc = Crc32Caucho.generateInt16(crc, keyLength);
      
      int dataLength = BitsUtil.readInt16(is);
      crc = Crc32Caucho.generateInt16(crc, dataLength);
      
      byte []data = new byte[dataLength];
      is.readAll(data, 0, data.length);
      
      crc = Crc32Caucho.generate(crc, data);
  
      int crcFile = BitsUtil.readInt(is);
      
      if (crcFile != crc) {
        log.fine("meta-table crc mismatch");
        return false;
      }
      
      TableEntry entry = new TableEntry(key,
                                        rowLength,
                                        keyOffset,
                                        keyLength,
                                        data);
      
      _tableList.add(entry);
  
      return true;
    }
docs: Read metadata for a table.
  
  <pre><code>
  key byte[32]
  rowLength int16
  keyOffset int16
  keyLength int16
  crc int32
  </code></pre>