Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.RdpbcgrServerSessionContext.Decompress C# (CSharp) Method

Decompress() private method

Decompress payload of slow path or fast path output.
private Decompress ( compressedType_Values type, byte data ) : byte[]
type compressedType_Values The type to decompress.
data byte The data to be decompressed.
return byte[]
        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;
            }
        }