Ejemplo n.º 1
0
        private static IStateMachine <TState, TTrigger> CreateDefault <TState, TTrigger>(TState initialState,
                                                                                         Configuration <TState, TTrigger> config, bool blocking = false)
        {
            IStateMachine <TState, TTrigger> sm;

            if (blocking)
            {
                sm = new BlockingStateMachine <TState, TTrigger>(initialState, config);
            }
            else
            {
                sm = new GuardedStateMachine <TState, TTrigger>(initialState, config);
            }

            return(sm);
        }
Ejemplo n.º 2
0
        public static IStateMachine <TState, TTrigger> Create <TState, TTrigger>(TState initialState,
                                                                                 StateMachineConfiguration <TState, TTrigger> config, bool blocking = false)
        {
            Contract.Requires <ArgumentNullException>(initialState != null);
            Contract.Requires <ArgumentNullException>(config != null);

            IStateMachine <TState, TTrigger> sm;

            if (blocking)
            {
                sm = new BlockingStateMachine <TState, TTrigger>(initialState, config);
            }
            else
            {
                sm = new StateMachine <TState, TTrigger>(initialState, config);
            }

            sm.UnhandledTriggerExecuted += InvalidTriggerException <TTrigger, TState> .Throw;
            return(sm);
        }