public DynamicStateMachineRunner(DynamicStateMachineConfiguration configuration, IActionRunner actionRunner, ILogger logger)
 {
     stateMachine      = new DynamicFiniteStateMachine(configuration);
     states            = configuration.States;
     events            = configuration.Events;
     actions           = configuration.Actions;
     this.actionRunner = actionRunner;
     this.logger       = logger;
 }
Example #2
0
        private DynamicStateTransition CreateTransition(string line, DynamicStateMachineConfiguration configuration)
        {
            var splitted = line.Split(FileSettings.Delimiter);

            return(new DynamicStateTransition(
                       EncodeState(splitted[0], configuration),
                       EncodeEvent(splitted[1], configuration),
                       EncodeState(splitted[2], configuration),
                       EncodeAction(splitted[3], configuration)));
        }
Example #3
0
        private void ParseLine(string line, DynamicStateMachineConfiguration configuration)
        {
            if (IsSkipLine(line))
            {
                return;
            }

            if (line.Contains(FileSettings.Delimiter))
            {
                configuration
                .TransitionTable
                .Add(CreateTransition(line, configuration));
            }
            else
            {
                configuration.StartState = EncodeState(line, configuration);
            }
        }
Example #4
0
 private int EncodeAction(string value, DynamicStateMachineConfiguration configuration)
 {
     return(Encode(value, configuration.Actions, ref actionCount));
 }
Example #5
0
 private int EncodeEvent(string value, DynamicStateMachineConfiguration configuration)
 {
     return(Encode(value, configuration.Events, ref eventCount));
 }
Example #6
0
 private int EncodeState(string value, DynamicStateMachineConfiguration configuration)
 {
     return(Encode(value, configuration.States, ref stateCount));
 }
 public DynamicFiniteStateMachine(DynamicStateMachineConfiguration configuration)
 {
     TransitionTable = configuration.TransitionTable.ToArray();
     CurrentState    = configuration.StartState;
     backupState     = configuration.StartState;
 }