Akka.Cluster.Tools.Client.ClusterClient.Active C# (CSharp) Méthode

Active() private méthode

private Active ( IActorRef receptionist ) : Receive
receptionist IActorRef
Résultat Receive
        private Receive Active(IActorRef receptionist)
        {
            return message =>
                message.Match()
                .With<Send>(send =>
                    receptionist.Forward(new PublishSubscribe.Send(send.Path, send.Message, send.LocalAffinity)))
                .With<SendToAll>(toAll =>
                    receptionist.Forward(new PublishSubscribe.SendToAll(toAll.Path, toAll.Message)))
                .With<Publish>(publish =>
                    receptionist.Forward(new PublishSubscribe.Publish(publish.Topic, publish.Message)))
                .With<InternalMessage>(m =>
                {
                    switch (m)
                    {
                        case InternalMessage.HeartbeatTick:
                            if (!_failureDetector.IsAvailable)
                            {
                                Log.Info("Lost contact with [{0}], restablishing connection", receptionist);
                                SendGetContacts();
                                ScheduleRefreshContactsTick(Settings.EstablishingGetContactsInterval);
                                Context.Become(Establishing);
                                _failureDetector.HeartBeat();
                            }
                            else
                            {
                                receptionist.Tell(ClusterReceptionist.Heartbeat.Instance);
                            }
                            break;
                        case InternalMessage.RefreshContactsTick:
                            receptionist.Tell(ClusterReceptionist.GetContacts.Instance);
                            break;
                    }
                })
                .With<ClusterReceptionist.HeartbeatRsp>(_ => _failureDetector.HeartBeat())
                .With<ClusterReceptionist.Contacts>(contacts =>
                {
                    if (contacts.ContactPoints.Length != 0)
                        _contacts = contacts.ContactPoints.Select(Context.ActorSelection).ToArray();
                })
                .With<Terminated>(terminated =>
                {
                    Log.Info("Lost contact with [{0}], restablishing connection", receptionist);
                    SendGetContacts();
                    ScheduleRefreshContactsTick(Settings.EstablishingGetContactsInterval);
                    Context.Become(Establishing);
                })
                .With<ActorIdentity>(_ => { /* ok, from previous establish, already handled */ })
                .WasHandled;
        }