示例#1
0
        /// <summary>
        /// <para>Indicates whether compression is possible in the HttpContext.</para>
        /// </summary>
        /// <param name="context">
        /// <para>HttpContext to check.</para>
        /// </param>
        /// <param name="compType">
        /// <para>Compression type.</para>
        /// </param>
        /// <returns>
        /// <para>true if allow.</para>
        /// </returns>
        public static bool AllowCompressionMtn(this HttpContext context, Mtn.Library.Enums.CompressionType compType)
        {
            string isOkToCompress = context.Request.Headers["Accept-Encoding"];
            Stream io             = context.Response.Filter;

            if (isOkToCompress == null)
            {
                return(false);
            }

            if (isOkToCompress.ToLower().Contains(compType.ToString().ToLower()) == false)
            {
                return(false);
            }

            if (io == null)
            {
                io = context.Response.OutputStream;
            }

            context.Response.Filter = new CompressionStream(io, compType);

            context.Response.AppendHeader("Content-Encoding", compType.ToString().ToLower());
            return(true);
        }
示例#2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="baseStream">
 /// <para>Represents the stream to compression.</para>
 /// </param>
 /// <param name="compType">
 /// <para>Compression type.</para>
 /// </param>
 public CompressionStream(System.IO.Stream baseStream, Mtn.Library.Enums.CompressionType compType)
 {
     if (compType == Mtn.Library.Enums.CompressionType.GZip)
     {
         this._mIo = new GZipStream(baseStream, CompressionMode.Compress);
     }
     else
     {
         this._mIo = new DeflateStream(baseStream, CompressionMode.Compress);
     }
 }