73 lines
1.8 KiB
C++
73 lines
1.8 KiB
C++
/*
|
|
* 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 <string>
|
|
|
|
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<pai::ios::job::JobPtr>& GetJobs();
|
|
protected:
|
|
pai::ios::job::JobPtr CreateJob(JobSubmitInfo *submitInfo, CGenerateInfo *generateInfo);
|
|
void AddJob(pai::ios::job::JobPtr job);
|
|
string GetNeedDelFilesStr(vector<string> &seisFiles);
|
|
string GetNeedDelFilesStr(vector<string> &seisFiles, vector<string> &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<pai::ios::job::JobPtr> m_Jobs;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif /* PAI_FRAME_WORKFLOWENGINE_WORKFLOWSUBMITTER_H_ */
|