namespace SvdCli.Storage { public interface ISvdStorage { string ProductId { get; } string ProductVersion { get; } uint BlockSize { get; } ulong BlockCount { get; } uint MaxTransferLength { get; } bool SupportTrim { get; } bool WriteProtect { get; } void Init(); void Exit(); void ReadBlocks(byte[] buffer, ulong blockIndex, uint blockCount); void WriteBlocks(byte[] buffer, ulong blockIndex, uint blockCount); int Read(byte[] buffer, long offset, int index, int count); void Write(byte[] buffer, long offset, int index, int count); void Flush(); void Trim(params TrimDescriptor[] descriptors); } }