public StateBuilder(IInnerState <TState, TEvent, TContext> state, StateDictionary <TState, TEvent, TContext> stateDict, IFactory <TState, TEvent, TContext> factory) { StateDict = stateDict; Factory = factory; CurrentState = state; }
public ITransition <TState, TEvent, TContext> CreateTransition(TEvent evtId, IInnerState <TState, TEvent, TContext> target) { var tr = new Transition <TState, TEvent, TContext>(); tr.Target = target; tr.EventToTrigger = evtId; return(tr); }
private void SetCurrentState(IInnerState <TState, TEvent, TContext> state, object[] parameters) { var oldState = _currentState; if (oldState != null) { oldState.Exit(context, parameters); } _currentState = state; if (state != null) { state.Enter(context, parameters); } }
public TransitionResult <TState, TEvent, TContext> Fire(TEvent eventId, params object[] paramters) { bool fired = false; IInnerState <TState, TEvent, TContext> toState = null; if (transitions != null) { foreach (var t in transitions) { if (t.EventToTrigger.Equals(eventId)) { fired = true; toState = t.Target; } } } return(new TransitionResult <TState, TEvent, TContext>(fired, toState, paramters)); }
public TransitionResult <TState, TEvent> Fire(TEvent eventId, Hashtable parameters = null) { bool fired = false; IInnerState <TState, TEvent> toState = null; if (transitions != null) { //foreach (var t in transitions) for (int i = 0; i < transitions.Count; i++) { var t = transitions[i]; if (t.EventToTrigger.Equals(eventId)) { fired = true; toState = t.Target; } } } return(new TransitionResult <TState, TEvent>(fired, toState)); }
public TransitionResult(bool fired, IInnerState <TState, TEvent> toState) { IsFired = fired; ToState = toState; }
public TransitionResult(bool fired, IInnerState <TState, TEvent, TContext> toState, object[] parameters) { IsFired = fired; ToState = toState; Parameters = parameters; }
public void Initialize(TState stateId) { isInitialized = true; InitialState = stateDict[stateId]; }
public void Initialize(TState stateId, TContext ctx = null) { isInitialized = true; InitialState = stateDict[stateId]; context = ctx; }