Ejemplo n.º 1
0
        public static DocTransform Deserialize(dynamic _reader)
        {
            DocTransform transform = new DocTransform(_reader.ReadInt32());

            int iOpCount = _reader.ReadInt32();

            List <DocOp> lOps = new List <DocOp>();

            for (int iOp = 0; iOp < iOpCount; iOp++)
            {
                DocOpType opType = (DocOpType)_reader.ReadByte();

                switch (opType)
                {
                case DocOpType.Insert:
                    lOps.Add(DocOp.Insert(_reader.ReadUInt16(), _reader.ReadInt32(), (char)_reader.ReadUInt16()));
                    break;

                case DocOpType.Delete:
                    lOps.Add(DocOp.Delete(_reader.ReadUInt16(), _reader.ReadInt32()));
                    break;
                }
            }

            transform.Append(lOps);

            return(transform);
        }
Ejemplo n.º 2
0
        public DocTransform Clone()
        {
            DocTransform clone = new DocTransform(ParentStateIndex);

            clone.mlOps = new List <DocOp>(mlOps);
            return(clone);
        }
Ejemplo n.º 3
0
        public void Transform(DocTransform _transform)
        {
            if (ParentStateIndex != _transform.ParentStateIndex)
            {
                throw new InvalidOperationException();
            }

            foreach (DocOp refOp in _transform.mlOps)
            {
                TransformOp(refOp);
            }

            ParentStateIndex++;
        }
Ejemplo n.º 4
0
 //----------------------------------------------------------------------
 public void Include(DocTransform _transform)
 {
     Transform(_transform);
     mlOps.InsertRange(0, _transform.mlOps);
 }