/// <summary> /// Returns the number of bytes the copy commands length argument occupies. /// </summary> /// <param name="command">The copy command to evaluate</param> /// <returns>The number of bytes the copy commands length argument occupies.</returns> public static int GetCopyLengthSize(CopyDeltaCommand command) { int response; switch (command) { case CopyDeltaCommand.Copy_Byte_Byte: case CopyDeltaCommand.Copy_Short_Byte: case CopyDeltaCommand.Copy_Int_Byte: case CopyDeltaCommand.Copy_Long_Byte: { response = 1; break; } case CopyDeltaCommand.Copy_Byte_Short: case CopyDeltaCommand.Copy_Short_Short: case CopyDeltaCommand.Copy_Int_Short: case CopyDeltaCommand.Copy_Long_Short: { response = 2; break; } case CopyDeltaCommand.Copy_Byte_Int: case CopyDeltaCommand.Copy_Short_Int: case CopyDeltaCommand.Copy_Int_Int: case CopyDeltaCommand.Copy_Long_Int: { response = 4; break; } case CopyDeltaCommand.Copy_Byte_Long: case CopyDeltaCommand.Copy_Short_Long: case CopyDeltaCommand.Copy_Int_Long: case CopyDeltaCommand.Copy_Long_Long: { response = 8; break; } default: { throw new Exception(string.Format(Strings.RDiffBinary.InvalidDeltaCopyCommandError, command)); } } return(response); }
/// <summary> /// Returns the number of bytes the copy commands offset argument occupies. /// </summary> /// <param name="command">The copy command to evaluate</param> /// <returns>The number of bytes the copy commands offset argument occupies.</returns> public static int GetCopyOffsetSize(CopyDeltaCommand command) { switch (command) { case CopyDeltaCommand.Copy_Byte_Byte: case CopyDeltaCommand.Copy_Byte_Short: case CopyDeltaCommand.Copy_Byte_Int: case CopyDeltaCommand.Copy_Byte_Long: return 1; case CopyDeltaCommand.Copy_Short_Byte: case CopyDeltaCommand.Copy_Short_Short: case CopyDeltaCommand.Copy_Short_Int: case CopyDeltaCommand.Copy_Short_Long: return 2; case CopyDeltaCommand.Copy_Int_Byte: case CopyDeltaCommand.Copy_Int_Short: case CopyDeltaCommand.Copy_Int_Int: case CopyDeltaCommand.Copy_Int_Long: return 4; case CopyDeltaCommand.Copy_Long_Byte: case CopyDeltaCommand.Copy_Long_Short: case CopyDeltaCommand.Copy_Long_Int: case CopyDeltaCommand.Copy_Long_Long: return 8; default: throw new Exception(string.Format(Strings.RDiffBinary.InvalidDeltaCopyCommandError, command)); } }