2
0
Эх сурвалжийг харах

Create IEventConsumer and IEventManager

Patrick Barron 4 жил өмнө
parent
commit
285af300f5

+ 11 - 0
MediaBrowser.Controller/Events/IEventConsumer.cs

@@ -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);
+    }
+}

+ 20 - 0
MediaBrowser.Controller/Events/IEventManager.cs

@@ -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;
+    }
+}