Table of Contents

Class EventExchange

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

Represents a mutable collection of event publishers identifiable by their event types.

public sealed class EventExchange : IMutableEventExchange, IEventExchange, IDisposable
Inheritance
EventExchange
Implements
Inherited Members
Extension Methods

Constructors

EventExchange()

Creates a new empty EventExchange instance.

public EventExchange()

Properties

IsDisposed

Specifies whether or not this event exchange has been disposed.

public bool IsDisposed { get; }

Property Value

bool

Methods

Dispose()

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

public void Dispose()

GetPublisher(Type)

Returns an event publisher associated with the provided eventType.

[Pure]
public IEventPublisher GetPublisher(Type eventType)

Parameters

eventType Type

Event type.

Returns

IEventPublisher

Registered IEventPublisher instance.

Exceptions

EventPublisherNotFoundException

When event publisher does not exist.

GetRegisteredEventTypes()

Returns a collection of event types of all currently registered event streams.

[Pure]
public IEnumerable<Type> GetRegisteredEventTypes()

Returns

IEnumerable<Type>

New IEnumerable<T> instance.

GetStream(Type)

Returns an event stream associated with the provided eventType.

[Pure]
public IEventStream GetStream(Type eventType)

Parameters

eventType Type

Event type.

Returns

IEventStream

Registered IEventStream instance.

Exceptions

EventPublisherNotFoundException

When event stream does not exist.

IsRegistered(Type)

Checks whether or not an event stream for the provided eventType exists.

[Pure]
public bool IsRegistered(Type eventType)

Parameters

eventType Type

Event type to check.

Returns

bool

true when event stream exists, otherwise false.

RegisterPublisher<TEvent>(IEventPublisher<TEvent>)

Registers the provided event publisher.

public IEventPublisher<TEvent> RegisterPublisher<TEvent>(IEventPublisher<TEvent> publisher)

Parameters

publisher IEventPublisher<TEvent>

Event publisher to register.

Returns

IEventPublisher<TEvent>

Registered event publisher.

Type Parameters

TEvent

Event type.

Exceptions

EventPublisherAlreadyExistsException

When event publisher for the given event type already exists.

TryGetPublisher(Type, out IEventPublisher)

Attempts to return an event publisher associated with the provided eventType.

public bool TryGetPublisher(Type eventType, out IEventPublisher result)

Parameters

eventType Type

Event type.

result IEventPublisher

out parameter that returns the registered IEventPublisher instance.

Returns

bool

true when event publisher exists, otherwise false.

TryGetStream(Type, out IEventStream)

Attempts to return an event stream associated with the provided eventType.

public bool TryGetStream(Type eventType, out IEventStream result)

Parameters

eventType Type

Event type.

result IEventStream

out parameter that returns the registered IEventStream instance.

Returns

bool

true when event stream exists, otherwise false.