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