Class EventStreamExtensions
- Namespace
- LfrlAnvil.Reactive.Extensions
- Assembly
- LfrlAnvil.Reactive.Core.dll
Contains IEventStream<TEvent> extension methods.
public static class EventStreamExtensions
- Inheritance
-
EventStreamExtensions
- Inherited Members
Methods
Aggregate<TEvent>(IEventStream<TEvent>, Func<TEvent, TEvent, TEvent>)
Decorates the event stream with EventListenerAggregateDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Aggregate<TEvent>(this IEventStream<TEvent> source, Func<TEvent, TEvent, TEvent> func)
Parameters
source
IEventStream<TEvent>Source event stream.
func
Func<TEvent, TEvent, TEvent>Aggregator delegate.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Aggregate<TEvent>(IEventStream<TEvent>, Func<TEvent, TEvent, TEvent>, TEvent)
Decorates the event stream with EventListenerAggregateDecorator<TEvent> with an initial event to publish immediately.
[Pure]
public static IEventStream<TEvent> Aggregate<TEvent>(this IEventStream<TEvent> source, Func<TEvent, TEvent, TEvent> func, TEvent seed)
Parameters
source
IEventStream<TEvent>Source event stream.
func
Func<TEvent, TEvent, TEvent>Aggregator delegate.
seed
TEventInitial event to publish immediately.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Append<TEvent>(IEventStream<TEvent>, IEnumerable<TEvent>)
Decorates the event stream with EventListenerAppendDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Append<TEvent>(this IEventStream<TEvent> source, IEnumerable<TEvent> values)
Parameters
source
IEventStream<TEvent>Source event stream.
values
IEnumerable<TEvent>Collection of values to append.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Append<TEvent>(IEventStream<TEvent>, params TEvent[])
Decorates the event stream with EventListenerAppendDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Append<TEvent>(this IEventStream<TEvent> source, params TEvent[] values)
Parameters
source
IEventStream<TEvent>Source event stream.
values
TEvent[]Collection of values to append.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
AuditUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerAuditUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> AuditUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before emitting the last emitted event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
BufferUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerBufferUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<ReadOnlyMemory<TEvent>> BufferUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before emitting the underlying buffer.
Returns
- IEventStream<ReadOnlyMemory<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
Buffer<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerBufferDecorator<TEvent>.
[Pure]
public static IEventStream<ReadOnlyMemory<TEvent>> Buffer<TEvent>(this IEventStream<TEvent> source, int bufferLength)
Parameters
source
IEventStream<TEvent>Source event stream.
bufferLength
intSize of the underlying buffer.
Returns
- IEventStream<ReadOnlyMemory<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Exceptions
- ArgumentOutOfRangeException
When
bufferLength
is less than 1.
Catch<TEvent, TException>(IEventStream<TEvent>, Action<TException>)
Decorates the event stream with EventListenerCatchDecorator<TEvent, TException>.
[Pure]
public static IEventStream<TEvent> Catch<TEvent, TException>(this IEventStream<TEvent> source, Action<TException> onError) where TException : Exception
Parameters
source
IEventStream<TEvent>Source event stream.
onError
Action<TException>Delegate to invoke once an exception is thrown by the decorated event listener.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TException
Exception type.
ConcatAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerMergeAllDecorator<TEvent> with maximum number of concurrently active inner event streams equal to 1.
[Pure]
public static IEventStream<TEvent> ConcatAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ConcurrentAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerConcurrentAllDecorator<TEvent>.
[Pure]
public static IEventStream<IEventStream<TEvent>> ConcurrentAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<IEventStream<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ConcurrentAll<TEvent>(IEventStream<IEventStream<TEvent>>, object)
Decorates the event stream with EventListenerConcurrentAllDecorator<TEvent>.
[Pure]
public static IEventStream<IEventStream<TEvent>> ConcurrentAll<TEvent>(this IEventStream<IEventStream<TEvent>> source, object sync)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
sync
objectShared synchronization object.
Returns
- IEventStream<IEventStream<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Concurrent<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerConcurrentDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Concurrent<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Concurrent<TEvent>(IEventStream<TEvent>, object)
Decorates the event stream with EventListenerConcurrentDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Concurrent<TEvent>(this IEventStream<TEvent> source, object sync)
Parameters
source
IEventStream<TEvent>Source event stream.
sync
objectSynchronization object.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ContinueWith<TEvent, TNextEvent>(IEventStream<TEvent>, Func<TEvent, IEventStream<TNextEvent>>)
Decorates the event stream with EventListenerContinueWithDecorator<TEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> ContinueWith<TEvent, TNextEvent>(this IEventStream<TEvent> source, Func<TEvent, IEventStream<TNextEvent>> continuationFactory)
Parameters
source
IEventStream<TEvent>Source event stream.
continuationFactory
Func<TEvent, IEventStream<TNextEvent>>Delegate that creates the continuation event stream based on the last emitted event.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TNextEvent
Next event type.
DebounceUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDebounceUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> DebounceUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before emitting the stored event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
DefaultIfEmpty<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDefaultIfEmptyDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent?> DefaultIfEmpty<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
DefaultIfEmpty<TEvent>(IEventStream<TEvent>, TEvent)
Decorates the event stream with EventListenerDefaultIfEmptyDecorator<TEvent> with a custom default value.
[Pure]
public static IEventStream<TEvent> DefaultIfEmpty<TEvent>(this IEventStream<TEvent> source, TEvent defaultValue)
Parameters
source
IEventStream<TEvent>Source event stream.
defaultValue
TEventDefault value.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
DistinctByUntilChanged<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctByUntilChanged<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
DistinctByUntilChanged<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<TEvent> DistinctByUntilChanged<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
equalityComparer
IEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
DistinctByUntil<TEvent, TKey, TTargetEvent>(IEventStream<TEvent>, Func<TEvent, TKey>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctByUntil<TEvent, TKey, TTargetEvent>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
target
IEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
TTargetEvent
Target event type.
DistinctByUntil<TEvent, TKey, TTargetEvent>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> DistinctByUntil<TEvent, TKey, TTargetEvent>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
equalityComparer
IEqualityComparer<TKey>Key equality comparer.
target
IEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
TTargetEvent
Target event type.
DistinctBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
DistinctBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<TEvent> DistinctBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer)
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event key selector.
equalityComparer
IEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
DistinctUntilChanged<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> where event is the key, with Default event equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctUntilChanged<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
DistinctUntilChanged<TEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerDistinctUntilChangedDecorator<TEvent, TKey> where event is the key.
[Pure]
public static IEventStream<TEvent> DistinctUntilChanged<TEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer)
Parameters
source
IEventStream<TEvent>Source event stream.
equalityComparer
IEqualityComparer<TEvent>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
DistinctUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> where event is the key, with Default key equality comparer.
[Pure]
public static IEventStream<TEvent> DistinctUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
DistinctUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerDistinctUntilDecorator<TEvent, TKey, TTargetEvent> where event is the key.
[Pure]
public static IEventStream<TEvent> DistinctUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
equalityComparer
IEqualityComparer<TEvent>Key equality comparer.
target
IEventStream<TTargetEvent>Target event stream whose events cause the underlying distinct keys tracker to be reset.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
Distinct<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> where event is the key, with Default event equality comparer.
[Pure]
public static IEventStream<TEvent> Distinct<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Distinct<TEvent>(IEventStream<TEvent>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerDistinctDecorator<TEvent, TKey> where event is the key.
[Pure]
public static IEventStream<TEvent> Distinct<TEvent>(this IEventStream<TEvent> source, IEqualityComparer<TEvent> equalityComparer)
Parameters
source
IEventStream<TEvent>Source event stream.
equalityComparer
IEqualityComparer<TEvent>Key equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ElementAt<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerElementAtDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ElementAt<TEvent>(this IEventStream<TEvent> source, int index)
Parameters
source
IEventStream<TEvent>Source event stream.
index
int0-based position of the desired event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ExhaustAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerExhaustAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ExhaustAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
First<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerFirstDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> First<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Flatten<TEvent>(IEventStream<IEnumerable<TEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits all nested elements.
[Pure]
public static IEventStream<TEvent> Flatten<TEvent>(this IEventStream<IEnumerable<TEvent>> source)
Parameters
source
IEventStream<IEnumerable<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Flatten<TSourceEvent, TInnerEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TInnerEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits pairs of (source, inner) events.
[Pure]
public static IEventStream<Pair<TSourceEvent, TInnerEvent>> Flatten<TSourceEvent, TInnerEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TInnerEvent>> selector)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
selector
Func<TSourceEvent, IEnumerable<TInnerEvent>>Inner event collection selector.
Returns
- IEventStream<Pair<TSourceEvent, TInnerEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TInnerEvent
Inner event type.
Flatten<TSourceEvent, TInnerEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TInnerEvent>>, Func<TSourceEvent, TInnerEvent, TNextEvent>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent> that emits pairs of (source, inner) events mapped to the desired event type.
[Pure]
public static IEventStream<TNextEvent> Flatten<TSourceEvent, TInnerEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TInnerEvent>> selector, Func<TSourceEvent, TInnerEvent, TNextEvent> resultMapper)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
selector
Func<TSourceEvent, IEnumerable<TInnerEvent>>Inner event collection selector.
resultMapper
Func<TSourceEvent, TInnerEvent, TNextEvent>Next event selector..
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TInnerEvent
Inner event type.
TNextEvent
Next event type.
ForEach<TEvent>(IEventStream<TEvent>, Action<TEvent>)
Decorates the event stream with EventListenerForEachDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> ForEach<TEvent>(this IEventStream<TEvent> source, Action<TEvent> action)
Parameters
source
IEventStream<TEvent>Source event stream.
action
Action<TEvent>Delegate to invoke on each event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
GroupBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>)
Decorates the event stream with EventListenerGroupByDecorator<TEvent, TKey> with Default event key equality comparer.
[Pure]
public static IEventStream<EventGrouping<TKey, TEvent>> GroupBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector) where TKey : notnull
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event's key selector.
Returns
- IEventStream<EventGrouping<TKey, TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
GroupBy<TEvent, TKey>(IEventStream<TEvent>, Func<TEvent, TKey>, IEqualityComparer<TKey>)
Decorates the event stream with EventListenerGroupByDecorator<TEvent, TKey>.
[Pure]
public static IEventStream<EventGrouping<TKey, TEvent>> GroupBy<TEvent, TKey>(this IEventStream<TEvent> source, Func<TEvent, TKey> keySelector, IEqualityComparer<TKey> equalityComparer) where TKey : notnull
Parameters
source
IEventStream<TEvent>Source event stream.
keySelector
Func<TEvent, TKey>Event's key selector.
equalityComparer
IEqualityComparer<TKey>Key equality comparer.
Returns
- IEventStream<EventGrouping<TKey, TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TKey
Event's key type.
Ignore<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerIgnoreDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Ignore<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Last<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Last<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
MergeAll<TEvent>(IEventStream<IEventStream<TEvent>>, int)
Decorates the event stream with EventListenerMergeAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> MergeAll<TEvent>(this IEventStream<IEventStream<TEvent>> source, int maxConcurrency = 2147483647)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
maxConcurrency
intMaximum number of concurrently active inner event streams. Equal to MaxValue by default.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Exceptions
- ArgumentOutOfRangeException
When
maxConcurrency
is less than 1.
Prepend<TEvent>(IEventStream<TEvent>, IEnumerable<TEvent>)
Decorates the event stream with EventListenerPrependDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Prepend<TEvent>(this IEventStream<TEvent> source, IEnumerable<TEvent> values)
Parameters
source
IEventStream<TEvent>Source event stream.
values
IEnumerable<TEvent>Collection of values to prepend.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Prepend<TEvent>(IEventStream<TEvent>, params TEvent[])
Decorates the event stream with EventListenerPrependDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Prepend<TEvent>(this IEventStream<TEvent> source, params TEvent[] values)
Parameters
source
IEventStream<TEvent>Source event stream.
values
TEvent[]Collection of values to prepend.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
SampleWhen<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerSampleWhenDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> SampleWhen<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before emitting the last stored event.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
SelectMany<TSourceEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, IEnumerable<TNextEvent>>)
Decorates the event stream with EventListenerSelectManyDecorator<TSourceEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> SelectMany<TSourceEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, IEnumerable<TNextEvent>> selector)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
selector
Func<TSourceEvent, IEnumerable<TNextEvent>>Next event collection selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TNextEvent
Next event type.
Select<TSourceEvent, TNextEvent>(IEventStream<TSourceEvent>, Func<TSourceEvent, TNextEvent>)
Decorates the event stream with EventListenerSelectDecorator<TSourceEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> Select<TSourceEvent, TNextEvent>(this IEventStream<TSourceEvent> source, Func<TSourceEvent, TNextEvent> selector)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
selector
Func<TSourceEvent, TNextEvent>Next event selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TNextEvent
Next event type.
ShareConcurrencyWithAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerConcurrentDecorator<TEvent> and EventListenerConcurrentAllDecorator<TEvent>, with the same synchronization object.
[Pure]
public static IEventStream<IEventStream<TEvent>> ShareConcurrencyWithAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<IEventStream<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ShareConcurrencyWithAll<TEvent>(IEventStream<IEventStream<TEvent>>, object)
Decorates the event stream with EventListenerConcurrentDecorator<TEvent> and EventListenerConcurrentAllDecorator<TEvent>, with the same synchronization object.
[Pure]
public static IEventStream<IEventStream<TEvent>> ShareConcurrencyWithAll<TEvent>(this IEventStream<IEventStream<TEvent>> source, object sync)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
sync
objectShared synchronization object.
Returns
- IEventStream<IEventStream<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ShareConcurrencyWith<TEvent, TTargetEvent, TResult>(IEventStream<TEvent>, IEventStream<TTargetEvent>, Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult>)
Decorates both event streams with EventListenerConcurrentDecorator<TEvent>, with the same synchronization object.
[Pure]
public static TResult ShareConcurrencyWith<TEvent, TTargetEvent, TResult>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target, Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult> resultSelector)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream.
resultSelector
Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult>Result selector.
Returns
- TResult
Selected result.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
TResult
Result type.
ShareConcurrencyWith<TEvent, TTargetEvent, TResult>(IEventStream<TEvent>, IEventStream<TTargetEvent>, Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult>, object)
Decorates both event streams with EventListenerConcurrentDecorator<TEvent>, with the same synchronization object.
[Pure]
public static TResult ShareConcurrencyWith<TEvent, TTargetEvent, TResult>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target, Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult> resultSelector, object sync)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream.
resultSelector
Func<IEventStream<TEvent>, IEventStream<TTargetEvent>, TResult>Result selector.
sync
objectSynchronization object.
Returns
- TResult
Selected result.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
TResult
Result type.
Single<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerSingleDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Single<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
SkipLast<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerSkipLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SkipLast<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
source
IEventStream<TEvent>Source event stream.
count
intNumber of events at the end of the sequence to skip.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
SkipUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerSkipUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> SkipUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before starting to notify the decorated event listener.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
SkipWhile<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerSkipWhileDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SkipWhile<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
source
IEventStream<TEvent>Source event stream.
predicate
Func<TEvent, bool>Predicate that skips events until the first event that passes it (returns true).
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Skip<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerSkipDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Skip<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
source
IEventStream<TEvent>Source event stream.
count
intNumber of events at the beginning of the sequence to skip.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
SwitchAll<TEvent>(IEventStream<IEventStream<TEvent>>)
Decorates the event stream with EventListenerSwitchAllDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> SwitchAll<TEvent>(this IEventStream<IEventStream<TEvent>> source)
Parameters
source
IEventStream<IEventStream<TEvent>>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TakeLast<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerTakeLastDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> TakeLast<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
source
IEventStream<TEvent>Source event stream.
count
intNumber of events at the end of the sequence to take.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TakeUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerTakeUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> TakeUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before disposing the subscriber.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
TakeWhile<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerTakeWhileDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> TakeWhile<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
source
IEventStream<TEvent>Source event stream.
predicate
Func<TEvent, bool>Predicate that takes events until the first event that fails it (returns false).
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Take<TEvent>(IEventStream<TEvent>, int)
Decorates the event stream with EventListenerTakeDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Take<TEvent>(this IEventStream<TEvent> source, int count)
Parameters
source
IEventStream<TEvent>Source event stream.
count
intNumber of events at the beginning of the sequence to take.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
ThrottleUntil<TEvent, TTargetEvent>(IEventStream<TEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerThrottleUntilDecorator<TEvent, TTargetEvent>.
[Pure]
public static IEventStream<TEvent> ThrottleUntil<TEvent, TTargetEvent>(this IEventStream<TEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream to wait for before emitting any subsequent events.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
TTargetEvent
Target event type.
ToConcurrent<TEvent>(EventPublisher<TEvent>)
Creates a new ConcurrentEventPublisher<TEvent, TPublisher> with the provided underlying event publisher.
[Pure]
public static IEventPublisher<TEvent> ToConcurrent<TEvent>(this EventPublisher<TEvent> source)
Parameters
source
EventPublisher<TEvent>Underlying event publisher.
Returns
- IEventPublisher<TEvent>
New ConcurrentEventPublisher<TEvent, TPublisher> instance.
Type Parameters
TEvent
Event type.
ToConcurrent<TEvent>(EventSource<TEvent>)
Creates a new ConcurrentEventSource<TEvent, TSource> with the provided underlying event source.
[Pure]
public static IEventSource<TEvent> ToConcurrent<TEvent>(this EventSource<TEvent> source)
Parameters
source
EventSource<TEvent>Underlying event source.
Returns
- IEventSource<TEvent>
New ConcurrentEventSource<TEvent, TSource> instance.
Type Parameters
TEvent
Event type.
ToConcurrent<TEvent>(HistoryEventPublisher<TEvent>)
Creates a new ConcurrentHistoryEventPublisher<TEvent, TPublisher> with the provided underlying history event publisher.
[Pure]
public static IHistoryEventPublisher<TEvent> ToConcurrent<TEvent>(this HistoryEventPublisher<TEvent> source)
Parameters
source
HistoryEventPublisher<TEvent>Underlying history event publisher.
Returns
- IHistoryEventPublisher<TEvent>
New ConcurrentHistoryEventPublisher<TEvent, TPublisher> instance.
Type Parameters
TEvent
Event type.
ToTask<TEvent>(IEventStream<TEvent>, CancellationToken)
Creates a new Task<TResult> instance from the provided event source
, that completes
when the event source subscriber is disposed, with the last emitted event as its result.
public static Task<TEvent?> ToTask<TEvent>(this IEventStream<TEvent> source, CancellationToken cancellationToken)
Parameters
source
IEventStream<TEvent>Source event stream.
cancellationToken
CancellationTokenTask's cancellation token.
Returns
- Task<TEvent>
New Task<TResult> instance.
Type Parameters
TEvent
Event type.
UseSynchronizationContext<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerUseSynchronizationContextDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> UseSynchronizationContext<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Exceptions
- InvalidOperationException
When Current is null.
WhereNotNull<TEvent>(IEventStream<TEvent?>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source) where TEvent : struct
Parameters
source
IEventStream<TEvent?>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
WhereNotNull<TEvent>(IEventStream<TEvent?>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source) where TEvent : class
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
WhereNotNull<TEvent>(IEventStream<TEvent?>, IEqualityComparer<TEvent>)
Decorates the event stream with EventListenerWhereDecorator<TEvent> that filters out null events.
[Pure]
public static IEventStream<TEvent> WhereNotNull<TEvent>(this IEventStream<TEvent?> source, IEqualityComparer<TEvent> comparer)
Parameters
source
IEventStream<TEvent>Source event stream.
comparer
IEqualityComparer<TEvent>Custom equality comparer.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Where<TEvent>(IEventStream<TEvent>, Func<TEvent, bool>)
Decorates the event stream with EventListenerWhereDecorator<TEvent>.
[Pure]
public static IEventStream<TEvent> Where<TEvent>(this IEventStream<TEvent> source, Func<TEvent, bool> predicate)
Parameters
source
IEventStream<TEvent>Source event stream.
predicate
Func<TEvent, bool>Predicate used for filtering events. Events that return false will be skipped.
Returns
- IEventStream<TEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
WithIndex<TEvent>(IEventStream<TEvent>)
Decorates the event stream with EventListenerWithIndexDecorator<TEvent>.
[Pure]
public static IEventStream<WithIndex<TEvent>> WithIndex<TEvent>(this IEventStream<TEvent> source)
Parameters
source
IEventStream<TEvent>Source event stream.
Returns
- IEventStream<WithIndex<TEvent>>
Decorated IEventStream<TEvent> instance.
Type Parameters
TEvent
Event type.
Zip<TSourceEvent, TTargetEvent>(IEventStream<TSourceEvent>, IEventStream<TTargetEvent>)
Decorates the event stream with EventListenerZipDecorator<TEvent, TTargetEvent, TNextEvent> that emits pairs of (source, target) events.
[Pure]
public static IEventStream<(TSourceEvent First, TTargetEvent Second)> Zip<TSourceEvent, TTargetEvent>(this IEventStream<TSourceEvent> source, IEventStream<TTargetEvent> target)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream.
Returns
- IEventStream<(TSourceEvent First, TTargetEvent Second)>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TTargetEvent
Target event type.
Zip<TSourceEvent, TTargetEvent, TNextEvent>(IEventStream<TSourceEvent>, IEventStream<TTargetEvent>, Func<TSourceEvent, TTargetEvent, TNextEvent>)
Decorates the event stream with EventListenerZipDecorator<TEvent, TTargetEvent, TNextEvent>.
[Pure]
public static IEventStream<TNextEvent> Zip<TSourceEvent, TTargetEvent, TNextEvent>(this IEventStream<TSourceEvent> source, IEventStream<TTargetEvent> target, Func<TSourceEvent, TTargetEvent, TNextEvent> selector)
Parameters
source
IEventStream<TSourceEvent>Source event stream.
target
IEventStream<TTargetEvent>Target event stream.
selector
Func<TSourceEvent, TTargetEvent, TNextEvent>Next event selector.
Returns
- IEventStream<TNextEvent>
Decorated IEventStream<TEvent> instance.
Type Parameters
TSourceEvent
Source event type.
TTargetEvent
Target event type.
TNextEvent
Next event type.