Project "Caravela" 0.1 / / Caravela Documentation / API Documentation / Caravela.​Reactive

Namespace Caravela.Reactive

Classes

ReactiveSourceExtensions

Extension methods for IReactiveCollection<T>.

Structs

ReactiveCollectorToken

A token passed to GetValue(ReactiveCollectorToken) or GetVersionedValue(ReactiveCollectorToken). Exposes the most primitive (weakly-typed and non-incremental) way to collect dependencies to observables. As an end-user you should generally not use ReactiveCollectorToken directly. You should pass the default instance instead. The default instance resolves to Caravela.Reactive.ReactiveCollectorToken.CurrentCollector, which can be modified using the WithDefaultCollector(IReactiveCollector) method.

ReactiveCollectorToken.WithDefaultObserverToken

An opaque return value for WithDefaultCollector(IReactiveCollector), to be disposed at the end of the scope.

ReactiveSideValues

An immutable list of side values. Side values are guaranteed to be copied (combined), from source to result, for all operators.

ReactiveVersionedValue<T>

Represents a versioned reactive value: a Value, SideValues and a Version number.

Interfaces

IAsyncReactiveCollection<T>

A reactive System.Collections.Generic.IEnumerable<T> that supports asynchronous operators.

IAsyncReactiveSource<T>

IAsyncReactiveSource<TValue, TObserver>

Defines the semantics of a reactive object that can be observed by strongly-typed observers.

IHasReactiveSideValues

Exposes a SideValues property. This interface must be implemented by the result type of custom operators that return side values (such as diagnostics). Side values are guaranteed to be copied (combined), from source to result, for all operators.

IReactiveCollection<T>

A reactive System.Collections.Generic.IEnumerable<T>.

IReactiveCollectionObserver<T>

An observer specialized for System.Collections.Generic.IEnumerable<T>. Supports notifications of changes in a collection: OnItemAdded(IReactiveSubscription, T, Int32), OnItemRemoved(IReactiveSubscription, T, Int32) and OnItemReplaced(IReactiveSubscription, T, T, Int32).

IReactiveCollector

Interface of an object that is able to collect dependencies and side values.

IReactiveGroup<TKey, TItem>

Represents the GroupBy<TKey, TItem>(IReactiveCollection<TItem>, Func<TItem, TKey>, IEqualityComparer<TKey>) operator.

IReactiveGroupBy<TKey, TItem>

Represents a group in a GroupBy<TKey, TItem>(IReactiveCollection<TItem>, Func<TItem, TKey>, IEqualityComparer<TKey>) operator.

IReactiveObservable<T>

An observable is something to which observers (IReactiveObserver) can subscribe.

IReactiveObserver

A weakly-typed observer to a reactive object. Does not support incremental changes.

IReactiveObserver<T>

A strongly-typed observer that supports notifications that the value has changed, but does not give more detail about the nature of the change.

IReactiveSideValue

Interface to be implemented by side values of reactive operators. Side values must be combinable.

IReactiveSource

The weakly typed base of IReactiveSource<T>.

IReactiveSource<T>

Defines the semantic of a reactive object. Its value can be accessed only by passing a a ReactiveCollectorToken. A dependency to the reactive object is added to the observer upon evaluating the value. However, the ReactiveCollectorToken mechanism only allows for weakly-typed observers, which excludes the representation of incremental changes. The IReactiveSource<TValue, TObserver> interface adds support for strongly-typed observers and incremental changes.

IReactiveSource<TValue, TObserver>

Defines the semantics of a reactive object that can be observed by strongly-typed observers.

IReactiveSubscription

Represents a subscription to an IReactiveObservable<T>. The main feature is that a subscription can be disposed. This is a weakly typed variant of IReactiveSubscription<T>.

IReactiveSubscription<T>

Represents a subscription to an IReactiveObservable<T>. The main feature is that a subscription can be disposed. This is a strongly typed variant of IReactiveSubscription.

IReactiveVersionedValue<TValue>

Exposes a value and a version number.