Table of Contents

Interface IReorderableEventQueue<TEvent, TPoint, TPointDelta>

Namespace
LfrlAnvil.Reactive.Queues
Assembly
LfrlAnvil.Reactive.Queues.dll

Represents a generic event queue that allows to modify registered events.

public interface IReorderableEventQueue<TEvent, TPoint, TPointDelta> : IEventQueue<TEvent, TPoint, TPointDelta>, IReadOnlyReorderableEventQueue<TEvent, TPoint, TPointDelta>, IReadOnlyEventQueue<TEvent, TPoint, TPointDelta>, IReadOnlyCollection<EnqueuedEvent<TEvent, TPoint, TPointDelta>>, IEnumerable<EnqueuedEvent<TEvent, TPoint, TPointDelta>>, IEnumerable

Type Parameters

TEvent

Event type.

TPoint

Queue point type.

TPointDelta

Queue point delta type.

Inherited Members

Methods

AdvanceDequeuePoint(TEvent, TPointDelta)

Modifies the existing event by moving the DequeuePoint backward by the specified delta.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? AdvanceDequeuePoint(TEvent @event, TPointDelta delta)

Parameters

event TEvent

Event to modify.

delta TPointDelta

Point delta to move the current DequeuePoint backward by.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

DecreaseDelta(TEvent, TPointDelta)

Modifies the existing event by subtracting a value from Delta.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? DecreaseDelta(TEvent @event, TPointDelta delta)

Parameters

event TEvent

Event to modify.

delta TPointDelta

Point delta to subtract.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

DecreaseRepetitions(TEvent, int)

Modifies the existing event by subtracting Repetitions.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? DecreaseRepetitions(TEvent @event, int count)

Parameters

event TEvent

Event to modify.

count int

Number of repetitions to subtract.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

Exceptions

ArgumentOutOfRangeException

When new number of repetitions is less than 1.

DelayDequeuePoint(TEvent, TPointDelta)

Modifies the existing event by moving the DequeuePoint forward by the specified delta.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? DelayDequeuePoint(TEvent @event, TPointDelta delta)

Parameters

event TEvent

Event to modify.

delta TPointDelta

Point delta to move the current DequeuePoint forward by.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

IncreaseDelta(TEvent, TPointDelta)

Modifies the existing event by adding a value to Delta.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? IncreaseDelta(TEvent @event, TPointDelta delta)

Parameters

event TEvent

Event to modify.

delta TPointDelta

Point delta to add.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

IncreaseRepetitions(TEvent, int)

Modifies the existing event by adding Repetitions.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? IncreaseRepetitions(TEvent @event, int count)

Parameters

event TEvent

Event to modify.

count int

Number of repetitions to add.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

Exceptions

ArgumentOutOfRangeException

When new number of repetitions is less than 1.

MakeInfinite(TEvent)

Modifies the existing event by making it repeat infinitely.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? MakeInfinite(TEvent @event)

Parameters

event TEvent

Event to modify.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

Remove(TEvent)

Attempts to remove the specified event.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? Remove(TEvent @event)

Parameters

event TEvent

Event to remove.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

Removed EnqueuedEvent<TEvent, TPoint, TPointDelta> instance or null when event does not exist.

SetDelta(TEvent, TPointDelta)

Modifies the existing event by changing the Delta.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? SetDelta(TEvent @event, TPointDelta delta)

Parameters

event TEvent

Event to modify.

delta TPointDelta

Point delta used for moving DequeuePoint forward on each repetition of this event.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

SetDequeuePoint(TEvent, TPoint)

Modifies the existing event by changing the DequeuePoint.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? SetDequeuePoint(TEvent @event, TPoint dequeuePoint)

Parameters

event TEvent

Event to modify.

dequeuePoint TPoint

Next queue point at which this event should be dequeued.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

SetRepetitions(TEvent, int)

Modifies the existing event by changing the Repetitions.

EnqueuedEvent<TEvent, TPoint, TPointDelta>? SetRepetitions(TEvent @event, int repetitions)

Parameters

event TEvent

Event to modify.

repetitions int

Number of repetitions.

Returns

EnqueuedEvent<TEvent, TPoint, TPointDelta>?

EnqueuedEvent<TEvent, TPoint, TPointDelta> instance associated with the modified event or null when event does not exist.

Exceptions

ArgumentOutOfRangeException

When repetitions is less than 1.