Пример #1
0
 public void AddParticularFriendObserver(Guid buddy_id, FriendObserver observer)
 {
     if (buddy_id != Guid.Empty && observer != null)
     {
         if (ParticularFriendObserverMap.ContainsKey(buddy_id) == false)
         {
             ParticularFriendObserverMap[buddy_id] = new HashSet <FriendObserver>();
         }
         ParticularFriendObserverMap[buddy_id].Add(observer);
     }
 }
Пример #2
0
        protected void NotifyParticularFriendObservers(Guid buddy_id)
        {
            if (ParticularFriendObserverMap.ContainsKey(buddy_id) == false)
            {
                return;
            }

            // Notify observers interested in buddy_id.
            foreach (FriendObserver observer in ParticularFriendObserverMap[buddy_id])
            {
                observer.Changed(ModifyMask);
            }
        }
Пример #3
0
        public void RemoveParticularFriendObserver(Guid buddy_id, FriendObserver observer)
        {
            if (buddy_id == Guid.Empty || observer == null)
            {
                return;
            }

            if (ParticularFriendObserverMap.ContainsKey(buddy_id) == false)
            {
                return;
            }

            ParticularFriendObserverMap[buddy_id].Remove(observer);

            // purge empty sets from the map
            if (ParticularFriendObserverMap[buddy_id].Count == 0)
            {
                ParticularFriendObserverMap.Remove(buddy_id);
            }
        }