namespace JetBrains.TeamCity.ServiceMessages.Write.Special { using System; /// /// Factory interface for specialized service messages generation /// Create instance of to get the implementation of the interface. /// public interface ITeamCityServiceMessages { /// /// Creates a writer that outputs service messages to Console.Out /// /// [NotNull] ITeamCityWriter CreateWriter(); /// /// Creates a writer that uses the provided delegate to output service messages /// /// generated service messages processor /// specifies whether messages written without explicitly opening a flow should be marked with a common flow id /// [NotNull] ITeamCityWriter CreateWriter(Action destination, bool addFlowIdsOnTopLevelMessages = true); /// /// Adds user-specific service message updater to the list of service message updaters. /// /// updater instance void AddServiceMessageUpdater([NotNull] IServiceMessageUpdater updater); } }