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, IDisposable
Type 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
decorator
IEventListenerDecorator<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
listener
IEventListener<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
event
TEventEvent 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
subscriber
IEventSubscriberAttached event subscriber.
listener
IEventListener<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
subscriber
IEventSubscriberEvent subscriber.
listener
IEventListener<TEvent>Event listener to override.
Returns
- IEventListener<TEvent>
IEventListener<TEvent> instance.