Exemple #1
0
        private void CreateCompetitor(Script script, CompetitorState initialState = CompetitorState.Inconclusive)
        {
            _logger.Info($"Creating competitor: {script.Name} from {script.ScriptType} script with id: {script.Id}");
            var competitorProps = Competitor.Props(_competitorFactory, _lobby, script.User, script, _resultsRepository, initialState);

            Context.ActorOf(competitorProps, script.Id.ToString());
        }
Exemple #2
0
        // ReSharper disable once MemberCanBePrivate.Global
        // public constructor required for akka
        public Competitor(
            ICompetitorFactory playerAgentActorFactory
            , IActorRef playerLobby
            , IUser creator
            , IScript script
            , IActorRef resultRepository
            , CompetitorState initialState)
        {
            _playerAgentActorFactory = playerAgentActorFactory;
            _playerLobby             = playerLobby;
            _creator                   = creator;
            _script                    = script;
            _resultRepository          = resultRepository;
            _statusSubscriptions       = new HashSet <IActorRef>();
            _methodCallsFailureCounter = new Counter(MaxMethodCallsFailures);
            _state = initialState;

            if (_script.Exception != null)
            {
                _failureStateInfo = new AgentFailureState(new DeserializedException(_script.Exception));
                Faulted();
            }
            else
            {
                Active();
            }
        }
Exemple #3
0
 public CompetitorStatus(CompetitorState state, int gamesPlayed, int wins, Guid competitorId, string exceptionString)
 {
     State           = state;
     GamesPlayed     = gamesPlayed;
     Wins            = wins;
     CompetitorId    = competitorId;
     ExceptionString = exceptionString;
 }
Exemple #4
0
 public static Props Props(ICompetitorFactory factory, IActorRef playerLobby, IUser creator, IScript script,
                           IActorRef resultRepository, CompetitorState initialState)
 {
     return(Akka.Actor.Props.Create(() =>
                                    new Competitor(factory, playerLobby, creator, script, resultRepository, initialState)));
 }
Exemple #5
0
 private void UpdateState(CompetitorState newState)
 {
     _state = newState;
     BroadcastToSubscribers(_state);
 }