/**Se lee una objeto de la clase CTablaHashExt que sera utilizada el la Hash Dinámica*/ public CTablaHashExt LeerTablaHashExt(long dir) { CTablaHashExt tExt; CEntrada entradaAux; CCubeta cubetaAux; long aux; int posCub; entradaAux = null; tExt = null; if (dir != -1) { tExt = new CTablaHashExt(); br.BaseStream.Seek(dir, SeekOrigin.Begin); tExt.setDir(br.ReadInt64()); tExt.setPrefAsociacion(br.ReadInt32()); tExt.setCabEntradas(br.ReadInt64()); tExt.setNumReg(br.ReadInt32()); aux = tExt.getCabEntradas(); while (aux != -1) { entradaAux = LeerEntrada(aux); cubetaAux = LeerCubeta(entradaAux.getDirCubeta()); if ((posCub = buscaCubeta(cubetaAux.getDir(), tExt)) == -1) entradaAux.setCubeta(cubetaAux); else entradaAux.setCubeta(tExt.getAtEntrada(posCub).getCubeta()); tExt.insEntrada(entradaAux); aux = entradaAux.getSigEntrada(); } } return (tExt); }
private CTablaHashExt creaTabla(CTablaHashExt tH) { CTablaHashExt nueva; CEntrada entAux; nueva = new CTablaHashExt(); nueva.setPrefAsociacion(tH.getPrefAsociacion()); nueva.setNumReg(tH.getNumReg()); foreach (CEntrada e in tH.getListEntradas()) { entAux = new CEntrada(); entAux.setID(e.getID()); entAux.setEspejo(e.getEspejo()); nueva.insEntrada(entAux); } return (nueva); }