Ejemplo n.º 1
0
        public void Add(IAlertsSourcePoller poller)
        {
            lock (_pollersLocker)
                lock (_isConnectedMultipleLocker)
                    lock (_alertsMultipleLocker)
                    {
                        poller.Connecting          += new EventHandler(poller_Connecting);
                        poller.Connected           += new EventHandler(poller_Connected);
                        poller.ActiveAlertsChanged += new EventHandler <AlertsEventArgs>(poller_ActiveAlertsChanged);

                        _pollers.Add(poller);
                        _alertsMultiple.Add(poller, new ReadOnlyCollection <string>(new string[0]));
                        _isConnectedMultiple.Add(poller, false);

                        if (_started)
                        {
                            poller.Start();
                        }
                    }
        }
Ejemplo n.º 2
0
        public void Remove(IAlertsSourcePoller poller)
        {
            lock (_pollersLocker)
                lock (_isConnectedMultipleLocker)
                    lock (_alertsMultipleLocker)
                    {
                        poller.Connecting          -= new EventHandler(poller_Connecting);
                        poller.Connected           -= new EventHandler(poller_Connected);
                        poller.ActiveAlertsChanged -= new EventHandler <AlertsEventArgs>(poller_ActiveAlertsChanged);

                        _pollers.Remove(poller);
                        _alertsMultiple.Remove(poller);
                        _isConnectedMultiple.Remove(poller);

                        if (_started)
                        {
                            poller.Stop();
                        }

                        UpdateConnectedState();
                        UpdateActiveAlerts();
                    }
        }