// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.IO;
namespace Microsoft.AspNetCore.ResponseCompression
{
///
/// Provides a specific compression implementation to compress HTTP responses.
///
public interface ICompressionProvider
{
///
/// The encoding name used in the 'Accept-Encoding' request header and 'Content-Encoding' response header.
///
string EncodingName { get; }
///
/// Indicates if the given provider supports Flush and FlushAsync. If not, compression may be disabled in some scenarios.
///
bool SupportsFlush { get; }
///
/// Create a new compression stream.
///
/// The stream where the compressed data have to be written.
/// The compression stream.
Stream CreateStream(Stream outputStream);
}
}