Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

59 lines
1.5 KiB
C#

namespace System.IO.Compression
{
using System.Diagnostics;
internal enum CompressionTracingSwitchLevel {
Off = 0,
Informational = 1,
Verbose = 2
}
// No tracing on Silverlight nor Windows Phone 7.
internal class CompressionTracingSwitch
#if !FEATURE_NETCORE
: Switch
#endif // !FEATURE_NETCORE
{
internal readonly static CompressionTracingSwitch tracingSwitch =
new CompressionTracingSwitch("CompressionSwitch", "Compression Library Tracing Switch");
internal CompressionTracingSwitch(string displayName, string description)
#if !FEATURE_NETCORE
: base(displayName, description)
#endif // !FEATURE_NETCORE
{
}
public static bool Verbose {
get {
#if FEATURE_NETCORE
return false;
#else
return tracingSwitch.SwitchSetting >= (int)CompressionTracingSwitchLevel.Verbose;
#endif
}
}
public static bool Informational {
get {
#if FEATURE_NETCORE
return false;
#else
return tracingSwitch.SwitchSetting >= (int)CompressionTracingSwitchLevel.Informational;
#endif
}
}
#if ENABLE_TRACING
public void SetSwitchSetting(CompressionTracingSwitchLevel level) {
if (level < CompressionTracingSwitchLevel.Off || level > CompressionTracingSwitchLevel.Verbose) {
throw new ArgumentOutOfRangeException("level");
}
this.SwitchSetting = (int)level;
}
#endif
}
}