internal static Event RegisterObserver(GsLiveRtObserver observer) { var key = Tuple.Create(observer.id, observer.ownerId); if (_observerCache.ContainsKey(key)) { throw new GameServiceException("Observer (Id,Owner) Must Be Unique"); } var newEvent = EventCallerUtil.CreateNewEvent(Sizes.EventInterval); _observerCache.Add(key, observer); _observerEventCache.Add(key, newEvent); return(newEvent); }
internal static void UnregisterObserver(GsLiveRtObserver observer) { if (_observerCache == null || _observerEventCache == null) { return; } var key = Tuple.Create(observer.id, observer.ownerId); if (!_observerCache.ContainsKey(key)) { throw new GameServiceException("Observer Not Exist!"); } _observerCache.Remove(key); _observerEventCache[key]?.Dispose(); _observerEventCache.Remove(key); }