internal byte[] Decompress(compressedType_Values type, byte[] data)
{
if (data == null)
{
return null;
}
lock (contextLock)
{
CompressMode flag = CompressMode.None;
if ((type & compressedType_Values.PACKET_AT_FRONT) == compressedType_Values.PACKET_AT_FRONT)
{
flag |= CompressMode.SetToFront;
}
if ((type & compressedType_Values.PACKET_COMPRESSED) == compressedType_Values.PACKET_COMPRESSED)
{
flag |= CompressMode.Compressed;
}
if ((type & compressedType_Values.PACKET_FLUSHED) == compressedType_Values.PACKET_FLUSHED)
{
flag |= CompressMode.Flush;
}
if (ioDecompressor != null && flag != CompressMode.None)
{
return ioDecompressor.Decompress(data, flag);
}
// no compression
return data;
}
}