public OutletObserver(IObservable <T> outlet, TimeSpan heartbeatInterval, Func <Task> heartbeatTask) { if (outlet == null) { throw new ArgumentNullException(nameof(outlet)); } if (heartbeatInterval.TotalMilliseconds <= 0) { throw new ArgumentException(nameof(heartbeatInterval)); } if (heartbeatTask == null) { throw new ArgumentNullException(nameof(heartbeatTask)); } _heartbeatInterval = heartbeatInterval; _heartbeatTask = heartbeatTask; _outlet = (Outlet <T>)outlet; }
public Outlet Create(string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } var outlet = new Outlet(_node, name); while (!ImmutableInterlocked.Update(ref _outlets, list => { if (list.Any(i => i.Id == name)) { throw new ArgumentException("An outlet with the same name already exists.", nameof(name)); } return(list.Add(outlet)); })) { } // OnCollectionChanged(); return(outlet); }
public Outlet(Outlet outlet) : base(outlet.Node, outlet.Id) { _outlet = outlet; }
private object CastOutlet(Outlet outlet, Type type) { return(Activator.CreateInstance(typeof(Outlet <>).MakeGenericType(type), outlet)); }
internal void Bind(Outlet outlet) { _inlet.Bind(outlet); }
public void Bind(Outlet outlet, Inlet inlet) { inlet.Bind(outlet); }
internal void Bind(Outlet outlet) { BoundedOutlet = outlet; _latestValue.Reset(); _inletBuffer.SetSource(outlet); }