Plan<TResult>
Represents an execution plan for join patterns.
using System.Collections.Generic;
namespace System.Reactive.Joins
{
public abstract class Plan<TResult>
{
internal Plan()
{
}
internal abstract ActivePlan Activate(Dictionary<object, IJoinObserver> externalSubscriptions, IObserver<TResult> observer, Action<ActivePlan> deactivate);
internal static JoinObserver<TSource> CreateObserver<TSource>(Dictionary<object, IJoinObserver> externalSubscriptions, IObservable<TSource> observable, Action<Exception> onError)
{
JoinObserver<TSource> joinObserver = null;
if (!externalSubscriptions.TryGetValue((object)observable, out IJoinObserver value)) {
joinObserver = new JoinObserver<TSource>(observable, onError);
externalSubscriptions.Add((object)observable, (IJoinObserver)joinObserver);
} else
joinObserver = (JoinObserver<TSource>)value;
return joinObserver;
}
}
}