/* * JobCreater.h * * Created on: Mar 24, 2015 * Author: dev */ #ifndef PAI_FRAME_WORKFLOWENGINE_JOBCREATER_H_ #define PAI_FRAME_WORKFLOWENGINE_JOBCREATER_H_ #include "Job.h" #include "Workflow.h" #include "WorkFlowFile.h" #include "GenerateInfo.h" #include "WorkflowJob.h" #include "WorkflowResourceMgr.h" #include using namespace std; namespace pai{ namespace workflow{ struct JobSubmitInfo { long long m_ChainId; string m_User; string m_JobName; string m_QueueName; pai::ios::job::WorkflowPtr m_Workflow; pai::ios::job::JobPriority m_Priority; JobSubmitInfo(): m_ChainId(-1), m_JobName(""), m_User(""), m_Workflow(), m_Priority(), m_QueueName("") {} }; class JobCreater { public: JobCreater(); virtual ~JobCreater(); virtual void Create(CWorkFlowFile *workflow, JobSubmitInfo *submitInfo) = 0; virtual pai::ios::job::JobPtr GetFirstJob() = 0; virtual pai::ios::job::JobPtr GetLastJob() = 0; vector& GetJobs(); protected: pai::ios::job::JobPtr CreateJob(JobSubmitInfo *submitInfo, CGenerateInfo *generateInfo); void AddJob(pai::ios::job::JobPtr job); string GetNeedDelFilesStr(vector &seisFiles); string GetNeedDelFilesStr(vector &seisFiles, vector &splitFiles); private: void SaveJson2CompileDir(const string &json, const SWorkflowResource &env); void GenerateAndCompileCppFile(CGenerateInfo *info, const SWorkflowResource &env); void CopyDebugFiles2CompilerTmp(const SWorkflowResource &env); void CreateWorkflowJar(const SWorkflowResource &env); JobCreater(const JobCreater &creater); JobCreater& operator=(const JobCreater &creater); private: // CWorkflowResourceMgr *m_ResourceMrg; vector m_Jobs; }; } } #endif /* PAI_FRAME_WORKFLOWENGINE_WORKFLOWSUBMITTER_H_ */