public void EnqueueDoneEvent(StatenodeId statenodeId) { var @event = new DoneEvent(statenodeId); if (!_queue.Any(queuedEvent => queuedEvent.Match(_ => false, current => current.Event.Equals(@event), _ => false))) { Enqueue(new CurrentStep(@event)); } }
protected ParsedStatenode( ParsedStatenode parent, string name, Option <string> uniqueIdentifier, int documentIndex, Actionblock entryActions, Actionblock exitActions) { Parent = parent.ToOption(); Name = name; UniqueIdentifier = uniqueIdentifier; DocumentIndex = documentIndex; EntryActions = entryActions; ExitActions = exitActions; Id = new StatenodeId(Parent, name); Depth = Parent.Map(p => p.Depth + 1).ValueOr(0); }
public AbsoluteTarget(StatenodeId id) => Id = id;
public void EnqueueStabilizationEvent(StatenodeId statenodeId) { var @event = new Stabilization(new InitializeEvent(statenodeId)); _queue.Enqueue(@event, @event.Priority); }
public override int GetHashCode() => StatenodeId.GetHashCode();
public Entry(StatenodeId statenodeId, string statenodeName) { StatenodeId = statenodeId ?? throw new NullReferenceException(nameof(statenodeId)); StatenodeName = statenodeName; Children = new HashSet <Entry>(); }