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);
        }