/// <summary> /// Notifies that a machine raised an <see cref="Event"/>. /// </summary> /// <param name="machine">Machine</param> /// <param name="eventInfo">EventInfo</param> internal override void NotifyRaisedEvent(Machine machine, EventInfo eventInfo) { eventInfo.SetOperationGroupId(base.GetNewOperationGroupId(machine, null)); if (base.Configuration.Verbose <= 1) { return; } base.Logger.OnMachineEvent(machine.Id, machine.CurrentStateName, eventInfo.EventName); }
/// <summary> /// Enqueues an asynchronous <see cref="Event"/> to a machine. /// </summary> /// <param name="machine">Machine</param> /// <param name="e">Event</param> /// <param name="sender">Sender machine</param> /// <param name="operationGroupId">Operation group id</param> /// <param name="runNewHandler">Run a new handler</param> private void EnqueueEvent(Machine machine, Event e, AbstractMachine sender, Guid operationGroupId, ref bool runNewHandler) { EventInfo eventInfo = new EventInfo(e, null); eventInfo.SetOperationGroupId(operationGroupId); var senderState = (sender as Machine)?.CurrentStateName ?? string.Empty; base.Logger.OnSend(machine.Id, sender?.Id, senderState, e.GetType().FullName, operationGroupId, isTargetHalted: false); machine.Enqueue(eventInfo, ref runNewHandler); }