Class EventSource<TEvent>
Represents a generic disposable event source that can be listened to.
public abstract class EventSource<TEvent> : IEventSource<TEvent>, IEventStream<TEvent>, IEventSource, IEventStream, IDisposableType Parameters
- TEvent
- Event type. 
- Inheritance
- 
      
      EventSource<TEvent>
- Implements
- 
      IEventSource<TEvent>IEventStream<TEvent>
- Derived
- Inherited Members
- Extension Methods
Constructors
EventSource()
Creates a new EventSource<TEvent> instance.
protected EventSource()Properties
HasSubscribers
Specifies whether or not this event source has any event subscribers.
public bool HasSubscribers { get; }Property Value
IsDisposed
Specifies whether or not this event stream has been disposed.
public bool IsDisposed { get; }Property Value
Subscribers
Collection of currently attached event subscribers to this event source.
public IReadOnlyCollection<IEventSubscriber> Subscribers { get; }Property Value
Methods
Decorate<TNextEvent>(IEventListenerDecorator<TEvent, TNextEvent>)
Creates a new decorated IEventStream<TEvent> instance.
[Pure]
public IEventStream<TNextEvent> Decorate<TNextEvent>(IEventListenerDecorator<TEvent, TNextEvent> decorator)Parameters
- decoratorIEventListenerDecorator<TEvent, TNextEvent>
- Event listener decorator. 
Returns
- IEventStream<TNextEvent>
- Decorated IEventStream<TEvent> instance. 
Type Parameters
- TNextEvent
- Next event type. 
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()EnsureNotDisposed()
Throws an exception when this event source has been disposed.
protected void EnsureNotDisposed()Exceptions
- ObjectDisposedException
- When this event source has been disposed. 
Listen(IEventListener<TEvent>)
Attaches the provided listener to this event stream.
public IEventSubscriber Listen(IEventListener<TEvent> listener)Parameters
- listenerIEventListener<TEvent>
- Event listener to attach. 
Returns
- IEventSubscriber
- New IEventSubscriber instance that can be used to detach the - listener.
NotifyListeners(TEvent)
Allows to notify all current event listeners that an event has occurred.
protected void NotifyListeners(TEvent @event)Parameters
- eventTEvent
- Event to notify with. 
OnDispose()
Allows to provide custom disposal implementation.
protected virtual void OnDispose()OnSubscriberAdded(IEventSubscriber, IEventListener<TEvent>)
Allows to react to attachment of a new event subscriber.
protected virtual void OnSubscriberAdded(IEventSubscriber subscriber, IEventListener<TEvent> listener)Parameters
- subscriberIEventSubscriber
- Attached event subscriber. 
- listenerIEventListener<TEvent>
- Event listener attached to the event subscriber. 
OverrideListener(IEventSubscriber, IEventListener<TEvent>)
Allows to override the event listener.
protected virtual IEventListener<TEvent> OverrideListener(IEventSubscriber subscriber, IEventListener<TEvent> listener)Parameters
- subscriberIEventSubscriber
- Event subscriber. 
- listenerIEventListener<TEvent>
- Event listener to override. 
Returns
- IEventListener<TEvent>
- IEventListener<TEvent> instance.