/// <summary>
        ///     Watcheds the actor terminated.
        /// </summary>
        /// <param name="m">The m.</param>
        private void WatchedActorTerminated(DeathWatchNotification m)
        {
            // AKKA:
            //        if (watchingContains(actor)) {
            //  maintainAddressTerminatedSubscription(actor) {
            //    watching = removeFromSet(actor, watching)
            //  }
            //  if (!isTerminating) {
            //    self.tell(Terminated(actor)(existenceConfirmed, addressTerminated), actor)
            //    terminatedQueuedFor(actor)
            //  }
            //}
            //if (childrenRefs.getByRef(actor).isDefined) handleChildTerminated(actor)
            if (!isTerminating)
            {
                //TODO: what params should be used for the bools?

                Self.Tell(new Terminated(m.Actor, true, false), m.Actor);
                TerminatedQueueFor(m.Actor);
            }
            if (children.ContainsKey(m.Actor.Path.Name))
            {
                HandleChildTerminated(m.Actor);
            }
        }
        public void Can_serialize_DeadwatchNotification()
        {
            var actorRef = ActorOf <BlackHoleActor>();
            var deadwatchNotification           = new DeathWatchNotification(actorRef, true, false);
            DeathWatchNotification deserialized = AssertAndReturn(deadwatchNotification);

            deserialized.Actor.Should().Be(actorRef);
            deserialized.AddressTerminated.Should().Be(deadwatchNotification.AddressTerminated);
            deserialized.ExistenceConfirmed.Should().Be(deadwatchNotification.ExistenceConfirmed);
        }
Esempio n. 3
0
        //
        // DeathWatchNotification
        //
        private byte[] DeathWatchNotificationToProto(DeathWatchNotification deathWatchNotification)
        {
            var message = new Proto.Msg.DeathWatchNotificationData();

            message.Actor              = new Proto.Msg.ActorRefData();
            message.Actor.Path         = Akka.Serialization.Serialization.SerializedActorPath(deathWatchNotification.Actor);
            message.AddressTerminated  = deathWatchNotification.AddressTerminated;
            message.ExistenceConfirmed = deathWatchNotification.ExistenceConfirmed;
            return(message.ToByteArray());
        }