public static IAwaitableStateMachine <TState, TTrigger> Create <TState, TTrigger>( TState initialState, AwaitableConfiguration <TState, TTrigger> config, bool queued = true, bool throwOnInvalidTriggers = true, bool throwOnInvalidState = true) { Contract.NotNull(config != null, nameof(config)); return(CreateCore <TState, TTrigger, object>(null, _ => CreateDefault(initialState, config, queued, null), throwOnInvalidTriggers, throwOnInvalidState)); }
public static IAwaitableStateMachine <TState, TTrigger> Create <TState, TTrigger>( TState initialState, AwaitableConfiguration <TState, TTrigger> config, TaskScheduler scheduler, bool throwOnInvalidTriggers = true, bool throwOnInvalidState = true) { Contract.NotNull(config != null, nameof(config)); Contract.NotNull(scheduler != null, nameof(scheduler)); return(CreateCore <TState, TTrigger, object>(null, _ => CreateDefault(initialState, config, false, scheduler), throwOnInvalidTriggers, throwOnInvalidState)); }
protected RawAwaitableStateMachineBase(TState initialState, AwaitableConfiguration <TState, TTrigger> awaitableConfiguration) { CurrentStateRepresentation = awaitableConfiguration.GetInitialStateRepresentation(initialState); if (CurrentStateRepresentation == null) { ExceptionHelper.ThrowInvalidState(initialState); } Representations = awaitableConfiguration.Representations; m_diagnostics = new RawAwaitableStateMachineDiagnostics <TState, TTrigger>(this); }
private static IAwaitableStateMachine <TState, TTrigger> CreateDefault <TState, TTrigger>( TState initialState, AwaitableConfiguration <TState, TTrigger> config, bool queued, TaskScheduler scheduler) { IAwaitableStateMachine <TState, TTrigger> sm; /*if (queued) { sm = new QueuedAwaitableStateMachine<TState, TTrigger>(initialState, config); } * else */ { sm = scheduler == null ? (IAwaitableStateMachine <TState, TTrigger>) new GuardedAwaitableStateMachine <TState, TTrigger>(initialState, config) : new ScheduledAwaitableStateMachine <TState, TTrigger>(initialState, config, scheduler); } return(sm); }
public RawAwaitableStateMachine(TState initialState, AwaitableConfiguration <TState, TTrigger> awaitableConfiguration) : base(initialState, awaitableConfiguration) { }
protected GuardedAwaitableStateMachineBase(TState initialState, AwaitableConfiguration <TState, TTrigger> awaitableConfiguration) : base(initialState, awaitableConfiguration) { }
public ScheduledAwaitableStateMachine(TState initialState, AwaitableConfiguration <TState, TTrigger> awaitableConfiguration, TaskScheduler scheduler) : base(initialState, awaitableConfiguration, scheduler) { }
protected ScheduledAwaitableStateMachineBase(TState initialState, AwaitableConfiguration <TState, TTrigger> awaitableConfiguration, TaskScheduler scheduler) : base(initialState, awaitableConfiguration) { Scheduler = scheduler; }
protected QueuedAwaitableStateMachineBase(TState initialState, AwaitableConfiguration <TState, TTrigger> config) : base(initialState, config) { actionsQueue = ImmutableQueue.Create <Func <Task> >(); }