public RingMonitor(Dataflow host, IRingNode[] ringNodes) { if (ringNodes.Length == 0) { throw new ArgumentException("The child ring contains nothing"); } m_hb = ringNodes.OfType <IHeartbeatNode>().FirstOrDefault(); if (m_hb == null) { throw new ArgumentException("A ring must contain at least one IHeartbeatNode"); } var nonChild = ringNodes.FirstOrDefault(r => { return(!host.IsMyChild(r)); }); if (nonChild != null) { throw new ArgumentException("The child ring contains a non-child: " + nonChild.FullName); } this.m_host = host; this.m_ringNodes = ringNodes; m_lazyDisplayName = new Lazy <string>(this.GetDisplayName); }
public RingMonitor(Dataflow host, IRingNode[] ringNodes) { if (ringNodes.Length == 0) { throw new ArgumentException("The child ring contains nothing"); } m_hb = ringNodes.OfType<IHeartbeatNode>().FirstOrDefault(); if (m_hb == null) { throw new ArgumentException("A ring must contain at least one IHeartbeatNode"); } var nonChild = ringNodes.FirstOrDefault(r => { return !host.IsMyChild(r); }); if (nonChild != null) { throw new ArgumentException("The child ring contains a non-child: " + nonChild.FullName); } this.m_host = host; this.m_ringNodes = ringNodes; m_lazyDisplayName = new Lazy<string>(this.GetDisplayName); }