コード例 #1
0
        /// <summary>
        /// Writes a literal command to a delta stream
        /// </summary>
        /// <param name="data">The literal data to write</param>
        /// <param name="output">The output delta stream</param>
        private static void WriteLiteral(byte[] data, DeltaBlock <int> block, Stream output)
        {
            byte[] lengthArray;

            output.WriteByte((byte)RDiffBinary.FindLiteralDeltaCommand(block.Size));
            lengthArray = RDiffBinary.EncodeLength(block.Size);
            output.Write(lengthArray, 0, lengthArray.Length);
            output.Write(data, block.Offset, block.Size);
        }
コード例 #2
0
        /// <summary>
        /// Write a copy command to a delta stream
        /// </summary>
        /// <param name="offset">The offset in the basefile where the data is located</param>
        /// <param name="length">The length of the data to copy</param>
        /// <param name="output">The output delta stream</param>
        private static void WriteCopy(DeltaBlock <long> block, Stream output)
        {
            byte[] lengthArray;

            output.WriteByte((byte)RDiffBinary.FindCopyDeltaCommand(block));
            lengthArray = RDiffBinary.EncodeLength(block.Offset);
            output.Write(lengthArray, 0, lengthArray.Length);
            lengthArray = RDiffBinary.EncodeLength(block.Size);
            output.Write(lengthArray, 0, lengthArray.Length);
        }