35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
|
using ZeroFramework.EventBus.Abstractions;
|
|||
|
using ZeroFramework.EventBus.Events;
|
|||
|
using static ZeroFramework.EventBus.InMemoryEventBusSubscriptionsManager;
|
|||
|
|
|||
|
namespace ZeroFramework.EventBus
|
|||
|
{
|
|||
|
public interface IEventBusSubscriptionsManager
|
|||
|
{
|
|||
|
bool IsEmpty { get; }
|
|||
|
|
|||
|
event EventHandler<string> OnEventRemoved;
|
|||
|
|
|||
|
void AddDynamicSubscription<TH>(string eventName) where TH : IDynamicIntegrationEventHandler;
|
|||
|
|
|||
|
void RemoveDynamicSubscription<TH>(string eventName) where TH : IDynamicIntegrationEventHandler;
|
|||
|
|
|||
|
void AddSubscription<T, TH>() where T : IntegrationEvent where TH : IIntegrationEventHandler<T>;
|
|||
|
|
|||
|
void RemoveSubscription<T, TH>() where TH : IIntegrationEventHandler<T> where T : IntegrationEvent;
|
|||
|
|
|||
|
bool HasSubscriptionsForEvent<T>() where T : IntegrationEvent;
|
|||
|
|
|||
|
bool HasSubscriptionsForEvent(string eventName);
|
|||
|
|
|||
|
Type GetEventTypeByName(string eventName);
|
|||
|
|
|||
|
void Clear();
|
|||
|
|
|||
|
IEnumerable<SubscriptionInfo> GetHandlersForEvent<T>() where T : IntegrationEvent;
|
|||
|
|
|||
|
IEnumerable<SubscriptionInfo> GetHandlersForEvent(string eventName);
|
|||
|
|
|||
|
string GetEventKey<T>();
|
|||
|
}
|
|||
|
}
|