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); } }
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); } }
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); } }