public GuardedSynchronizationJob(ISynchronizationJob <TLeft, TRight> inner) { if (inner == null) { throw new ArgumentNullException("inner"); } Inner = inner; }
public LeftGuardedSynchronizationJob(ISynchronizationJob <TLeft, TRight> inner, ObservingFunc <TLeft, bool> guard) : base(inner) { if (guard == null) { throw new ArgumentNullException("guard"); } Guard = guard; }
public Dependency(ISynchronizationJob <TLeft, TRight> inner, SynchronizationComputation <TLeft, TRight> computation, SynchronizationDirection direction, INotifyValue <bool> tracker) { Inner = inner; Computation = computation; Direction = direction; Tracker = tracker; if (tracker.Value) { Current = Inner.Perform(Computation, Direction, Computation.SynchronizationContext); } Tracker.ValueChanged += Tracker_ValueChanged; }