示例#1
0
        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);
        }
示例#2
0
        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);
        }