using NzbDrone.Common.Messaging; using NzbDrone.Core.Messaging.Commands; namespace NzbDrone.Core.Messaging { /// /// Enables loosely-coupled publication of events. /// public interface IMessageAggregator { void PublishEvent(TEvent @event) where TEvent : class, IEvent; void PublishCommand(TCommand command) where TCommand : Command; void PublishCommand(string commandTypeName); Command PublishCommandAsync(TCommand command) where TCommand : Command; Command PublishCommandAsync(string commandTypeName); } }