示例#1
0
 public SimpleStateMachine(
     TMachineState initialState,
     IStateMachineDispatcher <TMachineState, TMachineEvent> machineDispatcher)
 {
     this.CurrentState      = initialState;
     this.machineDispatcher = machineDispatcher;
 }
示例#2
0
        public EventStateMachine(
            TMachineState initialState,
            IStateMachineDispatcher <TMachineState, TMachineEvent, TGeneratedEvent> machineDispatcher,
            ISynchronizationQueueFactory synchronizationQueueFactory)
        {
            if (synchronizationQueueFactory is null)
            {
                throw new ArgumentNullException(nameof(synchronizationQueueFactory));
            }

            CurrentState              = initialState;
            this.machineDispatcher    = machineDispatcher ?? throw new ArgumentNullException(nameof(machineDispatcher));
            this.synchronizationQueue = synchronizationQueueFactory.Create <TMachineEvent>(ProcessImpl);
        }