Beispiel #1
0
        private void RebaseTree()
        {
            tree.GoStartIndex(Output);
            BlockTree temp = CreateNewBlockTree(tree.Depth + 1, Output, 0, true);

            //BlockTree temp = new BlockTree(this, Output, tree.Depth + 1, 0, true);

            temp.addChildBlock(tree, Output, true);//on lui ajoute le block de l'arbre précedent

            //le Stream est donc bien mis juste après le dernire block ajouté
            long f_child = temp.LastAddedBlockPos;

            temp.CreateNewChild(Output);//on lui recrée ces enfants

            System.Console.WriteLine(Output.Position);
            System.Console.WriteLine("on a rebasé l'arbre et le nouvelle enfant est en " + temp.TotalSize + "et le premier est en :" + f_child + "et contient les frame de" + tree.FirstFrame + "à" + tree.LastFrame);
            tree = temp;//on lui fait toute suite crée un nouvelle enfant : le prédicteur est forcément valide.
            Output.Flush();
            output.SetLength(tree.TotalSize);
            tree.UpdateHeader(Output);//on met à jour le header de l'arbre
        }