//-------------------------------------------------------------- public void UnregistrerListener(IFuturocomTraceListener listener) { for (int nTry = 0; nTry < 2; nTry++) { try { lock (typeof(CLockerListeListeners)) { m_listeListeners.Remove(listener); m_sponsor.Unregister(listener); foreach (string strCat in listener.CategoriesEcoutees) { List <IFuturocomTraceListener> lst = null; if (m_dicCategorieToListener.TryGetValue(strCat, out lst)) { lst.Remove(listener); } } return; } } catch { DeleteListenersEnErreur(); } } }
//------------------------------------------------ public void RemoveTraceListener(IFuturocomTraceListener listener) { if (!IsMySelf()) { ISnmpConnexion cnxDistante = GetConnexionDistante(); if (cnxDistante != null) { CProxyListener proxy = new CProxyListener(listener); m_sponsor.Unregister(listener); cnxDistante.RemoveTraceListener(proxy); } } else { CServiceMediation.GetDefaultInstance().RemoveTraceListener(listener); } }
//-------------------------------------------------------------- public void RegisterListener(IFuturocomTraceListener listener) { lock (typeof(CLockerListeListeners)) { m_listeListeners.Add(listener); m_sponsor.Register(listener); foreach (string strCat in listener.CategoriesEcoutees) { List <IFuturocomTraceListener> lst = null; if (!m_dicCategorieToListener.TryGetValue(strCat, out lst)) { lst = new List <IFuturocomTraceListener>(); m_dicCategorieToListener[strCat] = lst; } lst.Add(listener); } } }
//----------------------------------------------------------------------------- private void DeleteListenersEnErreur(List <IFuturocomTraceListener> lst) { List <int> lstToDestroy = new List <int>(); for (int n = lst.Count - 1; n >= 0; n--) { IFuturocomTraceListener listener = lst[n]; try { listener.ToString(); } catch { lstToDestroy.Add(n); } } foreach (int nToDestroy in lstToDestroy) { lst.RemoveAt(nToDestroy); } }
//---------------------------------------------------------- public void RemoveTraceListener(IFuturocomTraceListener listener) { m_gestionnaireAlarmes.Trace.UnregistrerListener(listener); }
//---------------------------------------------------------- public void AddTraceListener(IFuturocomTraceListener listener) { Trace.RegisterListener(listener); }
//--------------------------------------------------- public void RemoveTraceListener(IFuturocomTraceListener listener) { m_serviceMediation.RemoveTraceListener(listener); }
//--------------------------------------------------- public void AddTraceListener(IFuturocomTraceListener listener) { m_serviceMediation.AddTraceListener(listener); }