public bool WriteFile(CTaskExecutionTrace executionTrace, string FolderPath, string TaskSetID, CConfiguration config) { int ii; string sMain = ""; CTask task; string sFullFileName = FolderPath + "\\" + TaskSetID + ".txt"; _message = ""; try { for (ii = 0; ii < executionTrace.Count; ii++) { task = executionTrace.Get(ii); if (task != null) { sMain = sMain + ii.ToString() + "\t" + task.ID; } else //Write blank if no task ID { sMain = sMain + ii.ToString() + "\t" + " "; } sMain = sMain + "\r\n"; } writeToFile(sFullFileName, sMain); return(true); } catch (Exception e) { _message = e.Message; return(false); } }
//Return Task Set after loading from //File is formatted like //0 T1 //1 T1 //2 T2 //... public CTaskExecutionTrace ParseTaskExecutionTrace(string FileContents) { string[] sArray, sArray_1; long time; CTask task; CTaskExecutionTrace et = new CTaskExecutionTrace(); try { sArray = FileContents.Split('\n'); foreach (string s in sArray) { sArray_1 = s.Split('\t'); time = Convert.ToInt32(sArray_1[0]); task = new CTask(sArray_1[1], 0, 0, 0, 0, 0); et.Add(time, task); } return(et); } catch (Exception e) { _message = e.Message; return(null); } }
/// <summary> /// /// </summary> /// <param name="taskSet"></param> /// <param name="maxTime"></param> /// <returns></returns> public bool SimulateExecution(CTaskSet taskSet, long maxTime) { _ExecutionTrace = new CTaskExecutionTrace(); _message = ""; SortedList allTasks = new SortedList(); //Reverse Priority Order in Task Set taskSet.ReversePriorityOrder(); //Convert Task Set to SortedList CTask [] array = taskSet.GetAllTasksInPriorityOrder(); if (maxTime <= 0) { _message = "Time ro run simulation is not correct"; return(false); } foreach (CTask t in array) { allTasks.Add(t.iPriority, t); } //Get Reverse Priority Tasks //allTasksReverseOrder = ReversePriorities(allTasks); try { if (findResponseTime(allTasks, 0, maxTime) < 0) { return(false); } else { return(true); } } catch (Exception e) { _message = e.Message; return(false); } }