Example #1
0
            /// <summary>
            /// Adiciona um observer para a entrada.
            /// </summary>
            /// <param name="observer"></param>
            /// <returns>Entrada gerada para o observer.</returns>
            public RecordObserverEntry AddObserver(IRecordObserver observer)
            {
                var entry = new RecordObserverEntry(observer);

                entry.Removed += ObserverEntryRemoved;
                lock (_observers)
                    _observers.Add(entry);
                return(entry);
            }
Example #2
0
            /// <summary>
            /// Remove o observer associado.
            /// </summary>
            /// <param name="recordObserver">Instancia do observer que será removido.</param>
            /// <returns>True se for removido com sucesso.</returns>
            public bool RemoveObserver(IRecordObserver recordObserver)
            {
                if (recordObserver == null)
                {
                    return(false);
                }
                RecordObserverEntry entry = null;

                lock (_recordObserverEntries)
                    if (_recordObserverEntries.TryGetValue(recordObserver.Uid, out entry))
                    {
                        return(false);
                    }
                if (entry != null)
                {
                    _recordObserverEntries.Remove(recordObserver.Uid);
                    entry.Remove();
                    return(true);
                }
                return(false);
            }
Example #3
0
 /// <summary>
 /// Adiciona a chave de um registro.
 /// </summary>
 /// <param name="recordKey"></param>
 /// <param name="recordObserver">Observer do registro.</param>
 /// <returns></returns>
 public void AddRecordKey(RecordKey recordKey, IRecordObserver recordObserver)
 {
     lock (_recordObserverEntries)
     {
         if (_recordObserverEntries.ContainsKey(recordObserver.Uid))
         {
             return;
         }
         RecordKeyEntry entry = null;
         var            key   = recordKey.Key;
         lock (_keys)
             if (!_keys.TryGetValue(key, out entry))
             {
                 entry          = new RecordKeyEntry(key);
                 entry.Removed += RecordKeyEntryRemoved;
                 _keys.Add(key, entry);
             }
         var observerEntry = entry.AddObserver(recordObserver);
         _recordObserverEntries.Add(recordObserver.Uid, observerEntry);
     }
 }
Example #4
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="observer">Instancia do observer que a entra encapsula.</param>
 public RecordObserverEntry(IRecordObserver observer)
 {
     _reference = new WeakReference(observer);
 }
Example #5
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="o"></param>
 public void addRecordObserver(IRecordObserver o)
 {
     cRecordObserverList.Add(o);
 }
Example #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="o"></param>
 public void addRecordObserver(IRecordObserver o)
 {
     cRecordObserverList.Add(o);
 }