private CJob getJob() { CJob job = new CJob(); job.name = m_name; //tasks, inputs and outputs foreach (MonitoredExperimentViewModel experiment in m_monitoredExperiments) { CTask task = new CTask(); //we are assuming the same exe file is used in all the experiments!!! //IMPORTANT task.name = experiment.name; task.exe = experiment.exeFile; task.arguments = experiment.filePath + " " + experiment.pipeName; task.pipe = experiment.pipeName; job.tasks.Add(task); //add EXE files if (!job.inputFiles.Contains(task.exe)) job.inputFiles.Add(task.exe); //add prerrequisites foreach (string pre in experiment.prerrequisites) if (!job.inputFiles.Contains(pre)) job.inputFiles.Add(pre); //add experiment file to inputs if (!job.inputFiles.Contains(experiment.filePath)) job.inputFiles.Add(experiment.filePath); Utility.getInputsAndOutputs(experiment.filePath, ref job); } return job; }
public CJobDispatcher() { m_job = new CJob(); m_xmlStream = new XMLStream(); m_nextFileSize = 0; m_tempDir = ""; m_logMessageHandler = null; }
public CJobDispatcher() { m_job = new CJob(); m_xmlStream = new XMLStream(); m_nextFileSize = 0; m_tempDir = ""; m_logMessageHandler = null; }
public void SendJobQuery(CJob job, CancellationToken cancelToken) { m_job = job; SendJobHeader(cancelToken); SendTasks(cancelToken); //SendExeFiles(true); SendInputFiles(true, cancelToken); SendOutputFiles(false, cancelToken); SendJobFooter(cancelToken); }
public static void getInputsAndOutputs(string path, ref CJob job) { StringBuilder myResult = new StringBuilder(204800); object o = myResult; Monitor.Enter(o); //StringBuilder myResult = new StringBuilder(204800); int error = getIOFiles(path, myResult, 204800); if (error == -1) { return; } else { XDocument doc = XDocument.Parse(myResult.ToString()); XElement[] inputFiles = doc .Descendants() .Where(e => e.Name == "Input") .ToArray(); XElement[] outputFiles = doc .Descendants() .Where(e => e.Name == "Output") .ToArray(); foreach (XElement e in inputFiles) { if(!job.inputFiles.Contains(e.Value)) job.inputFiles.Add(e.Value); } foreach (XElement e in outputFiles) { if(!job.outputFiles.Contains(e.Value)) job.outputFiles.Add(e.Value); } } Monitor.Exit(o); }
public void SendJobQuery(CJob job,CancellationToken cancelToken) { m_job = job; SendJobHeader(cancelToken); SendTasks(cancelToken); //SendExeFiles(true); SendInputFiles(true,cancelToken); SendOutputFiles(false,cancelToken); SendJobFooter(cancelToken); }