Akka.Remote.TestKit.Controller.SupervisorStrategy C# (CSharp) Метод

SupervisorStrategy() защищенный Метод

Supervision of the BarrierCoordinator means to catch all his bad emotions and sometimes console him (BarrierEmpty, BarrierTimeout), sometimes tell him to hate the world (WrongBarrier, DuplicateNode, ClientLost). The latter shall help terminate broken tests as quickly as possible (i.e. without awaiting BarrierTimeouts in the players).
protected SupervisorStrategy ( ) : Akka.Actor.SupervisorStrategy
Результат Akka.Actor.SupervisorStrategy
        protected override SupervisorStrategy SupervisorStrategy()
        {
            return new OneForOneStrategy(e =>
            {
                var barrierTimeout = e as BarrierCoordinator.BarrierTimeoutException;
                if (barrierTimeout != null) return FailBarrier(barrierTimeout.BarrierData);
                var failedBarrier = e as BarrierCoordinator.FailedBarrierException;
                if (failedBarrier != null) return FailBarrier(failedBarrier.BarrierData);
                var barrierEmpty = e as BarrierCoordinator.BarrierEmptyException;
                if(barrierEmpty != null) return Directive.Resume;
                var wrongBarrier = e as BarrierCoordinator.WrongBarrierException;
                if (wrongBarrier != null)
                {
                    wrongBarrier.Client.Tell(new ToClient<BarrierResult>(new BarrierResult(wrongBarrier.Barrier, false)));
                    return FailBarrier(wrongBarrier.BarrierData);
                }
                var clientLost = e as BarrierCoordinator.ClientLostException;
                if (clientLost != null) return FailBarrier(clientLost.BarrierData);
                var duplicateNode = e as BarrierCoordinator.DuplicateNodeException;
                if (duplicateNode != null) return FailBarrier(duplicateNode.BarrierData);
                throw new InvalidOperationException(String.Format("Cannot process exception of type {0}", e.GetType()));
            });
        }