Example #1
0
        public V this[K key]
        {
            get { return(myMap[key]); }
            set
            {
                V    oldval;
                bool isUpdate = myMap.TryGetValue(key, out oldval);
                if (isUpdate && Equals(oldval, value))
                {
                    return;
                }

                myMap[key] = value;

                // ReSharper disable once ConvertIfStatementToConditionalTernaryExpression
                if (isUpdate)
                {
                    myChange.Fire(MapEvent <K, V> .Update(key, oldval, value));
                }
                else
                {
                    myChange.Fire(MapEvent <K, V> .Add(key, value));
                }
            }
        }
Example #2
0
 public void Advise(Lifetime lifetime, Action <MapEvent <K, V> > handler)
 {
     foreach (var kv in this)
     {
         try
         {
             handler(MapEvent <K, V> .Add(kv.Key, kv.Value));
         }
         catch (Exception e)
         {
             Log.Root.Error(e);
         }
     }
     myChange.Advise(lifetime, handler);
 }
Example #3
0
 public void Add(TK key, TV value)
 {
     myStorage.Add(key, value);
     myChange.Fire(MapEvent <TK, TV> .Add(key, value));
 }
Example #4
0
 public void Add(K key, V value)
 {
     myMap.Add(key, value);
     myChange.Fire(MapEvent <K, V> .Add(key, value));
 }