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

Compress() private method

Compress payload of slow path or fast path output.
private Compress ( compressedType_Values type, byte data, int maxBit = 16 ) : byte[]
type compressedType_Values The type to compress.
data byte The data to be compressed.
maxBit int
return byte[]
        internal byte[] Compress(compressedType_Values type, byte[] data, int maxBit =16)
        {
            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 (ioCompressor != null && flag != CompressMode.None)
                {
                    return ioCompressor.Compress(data, out flag);
                }

                // no compression
                return data;
            }
        }