Beispiel #1
0
 /// <summary>
 /// Remove o registro do observer.
 /// </summary>
 /// <param name="typeName"></param>
 /// <param name="observer"></param>
 public void Unregister(Colosoft.Reflection.TypeName typeName, IQueryResultChangedObserver observer)
 {
     if (IsEnabled)
     {
         var typeNameEntry = GetTypeNameEntry(typeName);
         typeNameEntry.RemoveObserver(observer);
     }
 }
Beispiel #2
0
 /// <summary>
 /// Registra o observer para o resultado da consulta. Toda vez
 /// que ocorrer alguma alteração que implique sobre os dados
 /// do resultado o observer será notificado.
 /// </summary>
 /// <param name="typeName">Nome do tipo no qual o resultado se basea.</param>
 /// <param name="observer">Instancia do observer.</param>
 public void Register(Colosoft.Reflection.TypeName typeName, IQueryResultChangedObserver observer)
 {
     if (IsEnabled && IsValidType(typeName))
     {
         var typeNameEntry = GetTypeNameEntry(typeName);
         typeNameEntry.AddObserver(observer);
     }
 }
Beispiel #3
0
 /// <summary>
 /// Adiciona o observer para a entrada do tipo.
 /// </summary>
 /// <param name="observer"></param>
 public void AddObserver(IQueryResultChangedObserver observer)
 {
     lock (_queryResultObserverEntries)
     {
         if (_queryResultObserverEntries.ContainsKey(observer.Uid))
         {
             return;
         }
         var entry = new QueryResultChangeObserverEntry(observer);
         _queryResultObserverEntries.Add(observer.Uid, entry);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Remove o observer associado.
 /// </summary>
 /// <param name="queryResultObserver">Instancia do observer que será removido.</param>
 /// <returns>True se for removido com sucesso.</returns>
 public bool RemoveObserver(IQueryResultChangedObserver queryResultObserver)
 {
     lock (_queryResultObserverEntries)
         return(_queryResultObserverEntries.Remove(queryResultObserver.Uid));
 }
Beispiel #5
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="observer">Instancia do observer a entrada.</param>
 public QueryResultChangeObserverEntry(IQueryResultChangedObserver observer)
 {
     _reference    = new WeakReference(observer);
     _referenceUid = observer.Uid;
 }