Files
VisualSapfor/src/TestingSystem/DVM/DVMTasks/DVMTask.java

107 lines
3.3 KiB
Java
Raw Normal View History

2023-12-12 01:01:36 +03:00
package TestingSystem.DVM.DVMTasks;
import Common.Constants;
import Common.Database.DBObject;
import Common.Database.iDBObject;
import Common.Global;
2023-12-12 01:01:36 +03:00
import GlobalData.Tasks.TaskState;
import ProjectData.LanguageName;
2023-12-12 01:01:36 +03:00
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Test.Test;
import TestingSystem.Common.Test.TestType;
import TestingSystem.DVM.Configuration.Configuration;
import com.google.gson.annotations.Expose;
import org.apache.commons.io.FileUtils;
2023-12-12 01:01:36 +03:00
import java.io.File;
import java.nio.file.Paths;
2023-12-12 01:01:36 +03:00
import java.util.Vector;
public class DVMTask extends iDBObject {
@Expose
public int dvm_package_id = Constants.Nan;
@Expose
2023-12-12 01:01:36 +03:00
public int group_id = Constants.Nan;
@Expose
2023-12-12 01:01:36 +03:00
public String group_description = "";
@Expose
2023-12-12 01:01:36 +03:00
public int test_id = Constants.Nan;
@Expose
2023-12-12 01:01:36 +03:00
public String test_description = "";
@Expose
public LanguageName language = LanguageName.fortran;
@Expose
2023-12-12 01:01:36 +03:00
public String flags = "";
@Expose
2023-12-12 01:01:36 +03:00
public int kernels = 1;
@Expose
2023-12-12 01:01:36 +03:00
public TaskState state = TaskState.Inactive;
@Expose
2023-12-12 01:01:36 +03:00
public int maxtime = 40;
@Expose
2023-12-12 01:01:36 +03:00
public TestType test_type = TestType.Default;
//результаты-------------------------------
@Expose
2023-12-12 01:01:36 +03:00
public double Time; //время выполнения.
//------------------------------------------------------
@Override
public void SynchronizeFields(DBObject src) {
super.SynchronizeFields(src);
DVMTask t = (DVMTask) src;
group_id = t.group_id;
group_description = t.group_description;
test_id = t.test_id;
test_description = t.test_description;
language = t.language;
2023-12-12 01:01:36 +03:00
flags = t.flags;
kernels = t.kernels;
state = t.state;
maxtime = t.maxtime;
test_type = t.test_type;
Time = t.Time;
}
public DVMTask(DVMTask src) {
this.SynchronizeFields(src);
}
public DVMTask() {
}
public DVMTask(Configuration configuration,
Group group, Test test, String flags_in) {
2023-12-12 01:01:36 +03:00
group_id = group.id;
test_id = test.id;
group_description = group.description;
test_description = test.description;
test_type = group.type;
language = group.language;
2023-12-12 01:01:36 +03:00
flags = flags_in;
}
public File getLocalWorkspace() {
return
Paths.get(Global.DVMPackagesDirectory.getAbsolutePath(),
String.valueOf(dvm_package_id),
"results",
String.valueOf(id)).toFile();
}
public Vector<String> pack(Object arg) {
2023-12-12 01:01:36 +03:00
return null;
}
public String getResultFile(File resultFile) {
String res = "";
if (dvm_package_id == Constants.Nan) res = "задача ещё не выполнялась";
else {
if (resultFile.exists()) {
try {
res = FileUtils.readFileToString(resultFile);
} catch (Exception ex) {
ex.printStackTrace();
}
} else res = "не существует";
}
return res;
}
public String getOutput() {
return getResultFile(new File(getLocalWorkspace(), Constants.out_file));
}
public String getErrors() {
return getResultFile(new File(getLocalWorkspace(), Constants.err_file));
}
2023-12-12 01:01:36 +03:00
}