Table of Contents

Class HistoryEventPublisher<TEvent>

Namespace
LfrlAnvil.Reactive
Assembly
LfrlAnvil.Reactive.Core.dll

Represents a generic disposable event source that can be listened to, capable of recording previously published events.

public class HistoryEventPublisher<TEvent> : EventPublisher<TEvent>, IHistoryEventPublisher<TEvent>, IEventPublisher<TEvent>, IEventSource<TEvent>, IEventStream<TEvent>, IEventPublisher, IEventSource, IEventStream, IDisposable

Type Parameters

TEvent

Event type.

Inheritance
EventSource<TEvent>
HistoryEventPublisher<TEvent>
Implements
IEventSource<TEvent>
IEventStream<TEvent>
Inherited Members
Extension Methods

Constructors

HistoryEventPublisher(int)

Creates a new HistoryEventPublisher<TEvent> instance.

public HistoryEventPublisher(int capacity)

Parameters

capacity int

Specifies the maximum number of events this event publisher can record.

Exceptions

ArgumentOutOfRangeException

When capacity is less than 1.

Properties

Capacity

Specifies the maximum number of events this event publisher can record.

public int Capacity { get; }

Property Value

int

History

Collection of recorded previously published events.

public TEvent[] History { get; }

Property Value

TEvent[]

Methods

ClearHistory()

Removes all recorded events.

public void ClearHistory()

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public override void Dispose()

OnPublish(TEvent)

Allows to react to event publishing.

protected override void OnPublish(TEvent @event)

Parameters

event TEvent

Event to publish.

OnSubscriberAddedUnsafe(IEventSubscriber, IEventListener<TEvent>)

Allows to react to attachment of a new event subscriber.

protected override void OnSubscriberAddedUnsafe(IEventSubscriber subscriber, IEventListener<TEvent> listener)

Parameters

subscriber IEventSubscriber

Attached event subscriber.

listener IEventListener<TEvent>

Event listener attached to the event subscriber.

Remarks

This method call is not thread-safe by default.

OnSubscriberRegistered(IEventSubscriber, IEventListener<TEvent>)

Allows to override an event listener after subscriber has been registered.

protected override IEventListener<TEvent> OnSubscriberRegistered(IEventSubscriber subscriber, IEventListener<TEvent> listener)

Parameters

subscriber IEventSubscriber

Event subscriber.

listener IEventListener<TEvent>

Event listener to override.

Returns

IEventListener<TEvent>

IEventListener<TEvent> instance.

StartHistoryListener(IEventListener<TEvent>)

Starts an internal history listener.

protected void StartHistoryListener(IEventListener<TEvent> listener)

Parameters

listener IEventListener<TEvent>

Listener to start.

Exceptions

InvalidCastException

When listener is not a history listener returned by OnSubscriberRegistered(IEventSubscriber, IEventListener<TEvent>) method.