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;
        }
Esempio n. 2
0
 public CJobDispatcher()
 {
     m_job               = new CJob();
     m_xmlStream         = new XMLStream();
     m_nextFileSize      = 0;
     m_tempDir           = "";
     m_logMessageHandler = null;
 }
Esempio n. 3
0
 public CJobDispatcher()
 {
     m_job = new CJob();
     m_xmlStream = new XMLStream();
     m_nextFileSize = 0;
     m_tempDir = "";
     m_logMessageHandler = null;
 }
Esempio n. 4
0
 public void SendJobQuery(CJob job, CancellationToken cancelToken)
 {
     m_job = job;
     SendJobHeader(cancelToken);
     SendTasks(cancelToken);
     //SendExeFiles(true);
     SendInputFiles(true, cancelToken);
     SendOutputFiles(false, cancelToken);
     SendJobFooter(cancelToken);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public void SendJobQuery(CJob job,CancellationToken cancelToken)
 {
     m_job = job;
     SendJobHeader(cancelToken);
     SendTasks(cancelToken);
     //SendExeFiles(true);
     SendInputFiles(true,cancelToken);
     SendOutputFiles(false,cancelToken);
     SendJobFooter(cancelToken);
 }