예제 #1
0
        public async Task Connect(IShardSessionObserver observer, string shardName)
        {
            if (sessionObservers.Count != 0)
            {
                GetLogger().Warn($"session {this.GetPrimaryKey()} has {sessionObservers.Count} observers at the start of {nameof(Connect)}; expected 0");
            }

            ShardName = shardName;
            sessionObservers.Subscribe(observer);
            GetLogger().Info($"session {this.GetPrimaryKey()} connected");

            var random = GrainFactory.GetGrain <IRandomService>(0);

            do
            {
                seed = await random.GetRandomInt();
            } while (seed == 0);

            var randomNumber = await random.GetRandomBigInteger(32);

            var authChallenge = new AuthChallengeRequest()
            {
                Seed         = seed,
                RandomNumber = randomNumber,
            };

            await Send(authChallenge);
        }
예제 #2
0
 public Task SubscribeForGameUpdates(IGameObserver subscriber)
 {
     if (!subscribers.IsSubscribed(subscriber))
     {
         subscribers.Subscribe(subscriber);
     }
     return(TaskDone.Done);
 }
예제 #3
0
 public Task SubscribeAsync(IMainEntry_Obs viewer)
 {
     if (!m_subsManager.IsSubscribed(viewer))
     {
         m_subsManager.Subscribe(viewer);
     }
     return(Task.CompletedTask);
 }
예제 #4
0
 public Task ViewerConnect(IChirperViewer viewer)
 {
     if (!viewers.IsSubscribed(viewer))
     {
         viewers.Subscribe(viewer);
     }
     return(TaskDone.Done);
 }
예제 #5
0
        public override Task OnActivateAsync()
        {
            _subsManager = new ObserverSubscriptionManager <IAccountReplicated>();
            var replicatedRef = GrainFactory.GetGrain <IAccountReplicated>(this.GrainId);

            _subsManager.Subscribe(replicatedRef);
            return(base.OnActivateAsync());
        }
예제 #6
0
 public Task Subscribe(IObserver observer)
 {
     if (!_subsManager.IsSubscribed(observer))
     {
         _subsManager.Subscribe(observer);
     }
     return(Task.CompletedTask);
 }
예제 #7
0
        public Task SubscribeAsync(IZoneOb observer)
        {
            if (!_subsManager.IsSubscribed(observer))
            {
                _subsManager.Subscribe(observer);
                logger.Debug($"¶©ÔÄIZoneOb");
            }
            else
            {
                logger.Debug($"ÒѾ­¶©ÔĹýIZoneOb");
            }
            logger.Debug($"¶©ÔÄÁ¿ {_subsManager.Count}");

            return(Task.CompletedTask);
        }
        // used by a custom MetricsTrackerTelemetryConsumer on each silo
        // to make themselves aware of when they should or shouldn't push their metrics here
        public Task Subscribe(IClusterMetricsGrainObserver observer)
        {
            try
            {
                // don't subscribe twice
                if (!Subscribers.IsSubscribed(observer))
                {
                    Subscribers.Subscribe(observer);
                }

                return(TaskDone.Done);
            }
            catch (Exception ex)
            {
                logger.TrackException(ex);
                throw;
            }
        }
예제 #9
0
파일: Object.cs 프로젝트: soulson/Drama
        public Task Subscribe(IObjectObserver observer)
        {
            VerifyExists();

            // TODO: determine how stealth/invisibility interact with this
            observer.HandleObjectCreate(State, GetCreationUpdate());

            if (observerManager.IsSubscribed(observer))
            {
                GetLogger().Warn($"observer {observer} tried to subscribe to {GetType().Name} {this.GetPrimaryKeyLong()} more than once");
            }
            else
            {
                observerManager.Subscribe(observer);
            }

            return(Task.CompletedTask);
        }
예제 #10
0
 public Task SubscribeStatus(IGameObserver subscriber)
 {
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #11
0
        public Task Subscribe(IBenchmarkObserver observer)
        {
            subscribers.Subscribe(observer);

            return(TaskDone.Done);
        }
예제 #12
0
 // Clients call this to subscribe.
 public Task Subscribe(IClientboundPacketObserver observer)
 {
     _subsManager.Subscribe(observer);
     return(Task.CompletedTask);
 }
예제 #13
0
 // Clients call this to subscribe.
 public Task Subscribe(IMsgObserver observer)
 {
     _subsManager.Subscribe(observer);
     return(Task.CompletedTask);
 }
예제 #14
0
 public Task ViewerConnect(IChirperViewer viewer)
 {
     viewers.Subscribe(viewer);
     return(TaskDone.Done);
 }
예제 #15
0
 public Task SubscribeForUpdates(IObserve subscriber)
 {
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #16
0
        public Task Subscribe(IVehicleTrackingObserver observer)
        {
            _observers.Subscribe(observer);

            return(TaskDone.Done);
        }
예제 #17
0
 public Task Subscribe(IRoomObserver observer)
 {
     observers.Subscribe(observer);
     return(TaskDone.Done);
 }
예제 #18
0
 public Task Subscribe(IClientObserver subscriber)
 {
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #19
0
 public Task Subscribe(IMessageHub observer)
 {
     _subscriptionManager.Subscribe(observer);
     return(Task.CompletedTask);
 }
예제 #20
0
 // Clients call this to subscribe.
 public async Task Subscribe(IEventHandler observer)
 {
     _subsManager.Subscribe(observer);
 }
예제 #21
0
 // accept subscriptions
 public Task SubscribeForUpdates(IObserve subscriber)
 {
     // add new subscriber to list of subscribers
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #22
0
 public Task SubscribeScavenger(IScavengerObserver observer)
 {
     _scavengerObservers.Clear();
     _scavengerObservers.Subscribe(observer);
     return(TaskDone.Done);
 }
예제 #23
0
 public Task SubscribeAsync(IGateWay_Obs view)
 {
     UnSubscribeAsync(view).Wait();
     m_IGW_Obs.Subscribe(view);
     return(Task.CompletedTask);
 }
예제 #24
0
 public void Subscribe(ISalesOrdersObserver observer)
 {
     _subscribers.Subscribe(observer);
 }
예제 #25
0
 public Task SubscribeNotification(IProcessMgrObserver subscriber)
 {
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #26
0
 public Task Subscribe(IHubObserver observer)
 {
     listeners.Subscribe(observer);
     return(TaskDone.Done);
 }
예제 #27
0
 public Task SubscribeForGameUpdates(IGameObserver subscriber)
 {
     subscribers.Subscribe(subscriber);
     return(TaskDone.Done);
 }
예제 #28
0
 // Clients call this to subscribe.
 public Task Subscribe(IChat observer)
 {
     _subsManager.Subscribe(observer);
     return(TaskDone.Done);
 }