/// <summary> /// Protected constructor /// </summary> /// <param name="performer"></param> /// <param name="startTime"></param> /// <param name="transitionLogic"></param> protected PerformedStep(ActivityPerformer performer, DateTime?startTime, IFsmTransitionLogic <PerformedStepStatus> transitionLogic) : base(PerformedStepStatus.IP, transitionLogic) { _activities = new HashedSet <Activity>(); _startTime = startTime ?? Platform.Time; _performer = performer; }
/// <summary> /// Protected constructor that allows for customized FSM logic. Typically there should be no need to customize the FSM logic. /// </summary> /// <param name="transitionLogic"></param> protected Activity(IFsmTransitionLogic <ActivityStatus> transitionLogic) : base(ActivityStatus.SC, transitionLogic) { _performedSteps = new HashedSet <PerformedStep>(); _scheduling = new ActivityScheduling(); }
/// <summary> /// Constructor /// </summary> /// <param name="initialState"></param> /// <param name="transitionLogic"></param> public PersistentFsm(TStateEnum initialState, IFsmTransitionLogic <TStateEnum> transitionLogic) { _transitionLogic = transitionLogic; _creationTime = _lastStateChangeTime = Platform.Time; _state = initialState; }