Ejemplo n.º 1
0
        private long CopiarListaCubetasRec(long dirCub, CArchivo aO, CArchivo aN, int tamBloque)
        {
            Cubeta cubAux, nuevaCub = null;
            CBloque bloqAux;
            long sigCub = -1;

            if( dirCub != -1)
            {
                cubAux = aO.LeerCubetaHashEstatica(dirCub);
                sigCub = CopiarListaCubetasRec(cubAux.getSigCubeta(), aO, aN, tamBloque);

                nuevaCub = new Cubeta(aN.ENDF(), cubAux.getTamaño());

                nuevaCub.setNumDirBloques(cubAux.getNumDirBloques());

                for (int i = 0; i < cubAux.getTamaño(); i++)
                    if ((bloqAux = aO.leerBloque(cubAux.getAtDirBloque(i), tamBloque)) != null)
                    {
                        bloqAux.setTamBlo(tamBloque);
                        nuevaCub.setAtDirBloque(i, aN.ENDF());
                        aN.EscribeBloque(bloqAux, aN.ENDF());
                    }

                nuevaCub.setDir(aN.ENDF());
                nuevaCub.setSigCubeta(sigCub);
                aN.EscribeCubetaHashEstatia(nuevaCub);
                sigCub = nuevaCub.getDir();
            }

            return (sigCub);
        }