2013-09-11 06:33:47 +00:00
|
|
|
using NzbDrone.Common.Messaging;
|
|
|
|
using NzbDrone.Core.Messaging.Commands;
|
2013-08-31 03:08:19 +00:00
|
|
|
|
2013-09-11 06:33:47 +00:00
|
|
|
namespace NzbDrone.Core.Messaging
|
2013-02-19 02:37:16 +00:00
|
|
|
{
|
|
|
|
/// <summary>
|
2013-02-23 20:09:44 +00:00
|
|
|
/// Enables loosely-coupled publication of events.
|
2013-02-19 02:37:16 +00:00
|
|
|
/// </summary>
|
2013-04-24 01:56:00 +00:00
|
|
|
public interface IMessageAggregator
|
2013-02-19 02:37:16 +00:00
|
|
|
{
|
2013-05-13 02:52:55 +00:00
|
|
|
void PublishEvent<TEvent>(TEvent @event) where TEvent : class, IEvent;
|
2013-09-11 06:33:47 +00:00
|
|
|
void PublishCommand<TCommand>(TCommand command) where TCommand : Command;
|
2013-08-31 03:08:19 +00:00
|
|
|
void PublishCommand(string commandTypeName);
|
2013-09-11 06:33:47 +00:00
|
|
|
Command PublishCommandAsync<TCommand>(TCommand command) where TCommand : Command;
|
|
|
|
Command PublishCommandAsync(string commandTypeName);
|
2013-02-19 02:37:16 +00:00
|
|
|
}
|
|
|
|
}
|