using System.Linq;
namespace NzbDrone.Common.Eventing
{
///
/// Denotes a class which can handle a particular type of message.
///
/// The type of message to handle.
public interface IHandle : IHandle where TEvent : IEvent
{
///
/// Handles the message synchronously.
///
/// The message.
void Handle(TEvent message);
}
///
/// Denotes a class which can handle a particular type of message.
///
/// The type of message to handle.
public interface IHandleAsync : IHandleAsync where TEvent : IEvent
{
///
/// Handles the message asynchronously.
///
/// The message.
void HandleAsync(TEvent message);
}
///
/// A marker interface for classes that subscribe to messages.
///
public interface IHandle { }
///
/// A marker interface for classes that subscribe to messages.
///
public interface IHandleAsync : IHandle { }
}