using System; using System.Threading.Tasks; using Abp.Events.Bus.Factories; using Abp.Events.Bus.Handlers; using Abp.Utils.Etc; namespace Abp.Events.Bus { /// /// An event bus that implements Null object pattern. /// public sealed class NullEventBus : IEventBus { /// /// Gets single instance of class. /// public static NullEventBus Instance { get; } = new NullEventBus(); private NullEventBus() { } /// public IDisposable Register(Action action) where TEventData : IEventData { return NullDisposable.Instance; } /// public IDisposable AsyncRegister(Func action) where TEventData : IEventData { return NullDisposable.Instance; } /// public IDisposable Register(IEventHandler handler) where TEventData : IEventData { return NullDisposable.Instance; } /// public IDisposable AsyncRegister(IAsyncEventHandler handler) where TEventData : IEventData { return NullDisposable.Instance; } /// public IDisposable Register() where TEventData : IEventData where THandler : IEventHandler, new() { return NullDisposable.Instance; } /// public IDisposable Register(Type eventType, IEventHandler handler) { return NullDisposable.Instance; } /// public IDisposable Register(IEventHandlerFactory handlerFactory) where TEventData : IEventData { return NullDisposable.Instance; } /// public IDisposable Register(Type eventType, IEventHandlerFactory handlerFactory) { return NullDisposable.Instance; } /// public void Unregister(Action action) where TEventData : IEventData { } /// public void AsyncUnregister(Func action) where TEventData : IEventData { } /// public void Unregister(IEventHandler handler) where TEventData : IEventData { } /// public void AsyncUnregister(IAsyncEventHandler handler) where TEventData : IEventData { } /// public void Unregister(Type eventType, IEventHandler handler) { } /// public void Unregister(IEventHandlerFactory factory) where TEventData : IEventData { } /// public void Unregister(Type eventType, IEventHandlerFactory factory) { } /// public void UnregisterAll() where TEventData : IEventData { } /// public void UnregisterAll(Type eventType) { } /// public void Trigger(TEventData eventData) where TEventData : IEventData { } /// public void Trigger(object eventSource, TEventData eventData) where TEventData : IEventData { } /// public void Trigger(Type eventType, IEventData eventData) { } /// public void Trigger(Type eventType, object eventSource, IEventData eventData) { } /// public Task TriggerAsync(TEventData eventData) where TEventData : IEventData { return Task.CompletedTask; } /// public Task TriggerAsync(object eventSource, TEventData eventData) where TEventData : IEventData { return Task.CompletedTask; } /// public Task TriggerAsync(Type eventType, IEventData eventData) { return Task.CompletedTask; } /// public Task TriggerAsync(Type eventType, object eventSource, IEventData eventData) { return Task.CompletedTask; } } }