internal static RuntimeLoaderProcessData EmptyData(int processID)
        {
            RuntimeLoaderProcessData emptyData = new RuntimeLoaderProcessData(0, processID);

            emptyData.FinishData(Double.MaxValue);
            return(emptyData);
        }
        public RuntimeLoaderProcessData GetProcessDataFromProcessIDAndTimestamp(int processID, double timestamp)
        {
            foreach (var procData in _processData)
            {
                if (procData.ProcessID == processID)
                {
                    if (timestamp < procData.FinalTimestamp)
                    {
                        return(procData);
                    }
                }
            }

            return(RuntimeLoaderProcessData.EmptyData(processID));
        }
        private void AddStartStopData(int processID, int threadId, EventUID start, EventUID end, string name)
        {
            if (!_processSpecificDataInProgress.TryGetValue(processID, out RuntimeLoaderProcessData processData))
            {
                processData = new RuntimeLoaderProcessData(end.Time, processID);
                _processSpecificDataInProgress[processID] = processData;
            }

            if (!processData.StartStopEvents.ContainsKey(threadId))
            {
                processData.StartStopEvents[threadId] = new List <StartStopThreadEventData>();
            }

            List <StartStopThreadEventData> startStopData = processData.StartStopEvents[threadId];

            startStopData.Add(new StartStopThreadEventData(start, end, name));
        }
 internal void AddProcessData(RuntimeLoaderProcessData processData, double finalTimestamp)
 {
     processData.FinishData(finalTimestamp);
     _processData.Add(processData);
 }