namespace TeamCity.MSBuild.Logger { using System; using System.Collections.Generic; using JetBrains.Annotations; using Microsoft.Build.Framework; internal interface ILoggerContext { DateTime BuildStarted { get; set; } int CurrentIndentLevel { get; } IDictionary> DeferredMessages { [NotNull] get; } int ErrorCount { get; set; } IList ErrorList { [CanBeNull] get; } bool HasBuildStarted { get; set; } [CanBeNull] BuildEventContext LastDisplayedBuildEventContext { get; set; } ProjectFullKey LastProjectFullKey { get; set; } int NumberOfProcessors { get; } Parameters Parameters { [NotNull] get; } int PrefixWidth { get; set; } bool SkipProjectStartedText { get; } IDictionary ProjectPerformanceCounters { [NotNull] get; } IDictionary TargetPerformanceCounters { [NotNull] get; } IDictionary TaskPerformanceCounters { [NotNull] get; } LoggerVerbosity Verbosity { get; } int WarningCount { get; set; } IList WarningList { [CanBeNull] get; } [NotNull] ProjectFullKey GetFullProjectKey([CanBeNull] BuildEventContext e); void Initialize( int numberOfProcessors, bool skipProjectStartedText, [NotNull] Parameters parameters); bool IsVerbosityAtLeast(LoggerVerbosity checkVerbosity); void ResetConsoleLoggerState(); } }