/// <summary> /// Processes action provided by the given vertex. /// </summary> /// <param name="vertex">The vertex.</param> /// <param name="executionInfo">The object that stores the information about the execution of the schedule.</param> /// <returns>A value indicating if the execution of the schedule should continue.</returns> public ScheduleExecutionState Process(IScheduleVertex vertex, ScheduleExecutionInfo executionInfo) { var markVertex = vertex as MarkHistoryVertex; if (markVertex == null) { Debug.Assert(false, "The vertex is of the incorrect type."); return(ScheduleExecutionState.IncorrectProcessorForVertex); } if (executionInfo.Cancellation.IsCancellationRequested) { return(ScheduleExecutionState.Canceled); } if (executionInfo.PauseHandler.IsPaused) { executionInfo.PauseHandler.WaitForUnPause(executionInfo.Cancellation); } var marker = m_Timeline.Mark(); m_OnMarkerStorage(marker); return(ScheduleExecutionState.Executing); }