public CompressAsync ( byte value ) : Task |
||
value | byte | /// The value. /// |
return | Task |
public async Task<byte[]> CompressAsync(byte[] value)
{
byte[] compressed = await GZipCompressor.Instance.CompressAsync(value);
if (compressed.Length < value.Length)
{
byte[] fin = new byte[compressed.Length + 1];
using (MemoryStream ms = new MemoryStream(fin))
{
await ms.WriteAsync(new byte[] { 1 }, 0, 1);
await ms.WriteAsync(compressed, 0, compressed.Length);
return ms.ToArray();
}
}
else
{
byte[] fin = new byte[value.Length + 1];
using (MemoryStream ms = new MemoryStream(fin))
{
await ms.WriteAsync(new byte[] { 0 }, 0, 1);
await ms.WriteAsync(value, 0, value.Length);
return ms.ToArray();
}
}
}
SmartCompressor::CompressAsync ( string value ) : Task |