Create IEventConsumer and IEventManager

This commit is contained in:
Patrick Barron 2020-08-13 20:29:14 -04:00
parent 3ee940f7b3
commit 285af300f5
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,11 @@
using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Events
{
public interface IEventConsumer<in T>
where T : EventArgs
{
Task OnEvent(T eventArgs);
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Events
{
/// <summary>
/// An interface that handles eventing.
/// </summary>
public interface IEventManager
{
/// <summary>
/// Publishes an event.
/// </summary>
/// <param name="eventArgs">The event arguments.</param>
/// <typeparam name="T">The type of event.</typeparam>
/// <returns>A task representing the publishing of the event.</returns>
Task Publish<T>(T eventArgs)
where T : EventArgs;
}
}