public override void OnEnter(ConsumerStateMachine stateMachine) { stateMachine.RunSafe(async() => { var consumed = await stateMachine._fetchNext().ConfigureAwait(false); if (consumed) { stateMachine.TransitionTo(this, new FetchedState()); } else if (_eventProducedSignalled) { stateMachine.ScheduleTransitionTo(stateMachine._config.PickNextInterval, this, new FetchingState()); } else { stateMachine.TransitionTo(this, new FetchedEmptyState()); } }); }
public override void OnEnter(ConsumerStateMachine stateMachine) { base.OnEnter(stateMachine); stateMachine.ScheduleTransitionTo(stateMachine._config.PollingInterval, this, new FetchingState()); }
public override void Handle(ConsumerStateMachine stateMachine, EventProducedSignal signal) { base.Handle(stateMachine, signal); stateMachine.TransitionTo(this, new FetchingState()); }
public override void Handle(ConsumerStateMachine stateMachine, EventProducedSignal signal) { _eventProducedSignalled = true; }
public virtual void OnEnter(ConsumerStateMachine stateMachine) { }
public virtual void Handle(ConsumerStateMachine stateMachine, EventProducedSignal signal) { }