Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }