Exemple #1
0
        public virtual void Rollback(ArrayList snapshot)
        {
            this.marker = (Int32)snapshot[0];
            snapshot.RemoveAt(0);

            if (this.marker == MarkerStart)
            {
                ResetMarker();
                return;
            }
            else if ((this.marker == -1) || children.Count == 0)
            {
                return;
            }

            if (this.marker <= MarkerStart)
            {
                return;
            }

            int numChildren = children.Count;

            for (int i = this.marker + 1; i < numChildren; i++)
            {
                FONode fo = (FONode)children[i];
                fo.ResetMarker();
            }
            ((FONode)children[this.marker]).Rollback(snapshot);
        }