MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / executeTask

Method executeTask

launcher/java/JavaChecker.cpp:51–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49{}
50
51void JavaChecker::executeTask()
52{
53 QString checkerJar = JavaUtils::getJavaCheckPath();
54
55 if (checkerJar.isEmpty()) {
56 qDebug() << "Java checker library could not be found. Please check your installation.";
57 return;
58 }
59#ifdef Q_OS_WIN
60 checkerJar = FS::getPathNameInLocal8bit(checkerJar);
61#endif
62
63 QStringList args;
64
65 process.reset(new QProcess());
66 if (m_args.size()) {
67 auto extraArgs = Commandline::splitArgs(m_args);
68 args.append(extraArgs);
69 }
70 if (m_minMem != 0) {
71 args << QString("-Xms%1m").arg(m_minMem);
72 }
73 if (m_maxMem != 0) {
74 args << QString("-Xmx%1m").arg(m_maxMem);
75 }
76 if (m_permGen != 64 && m_permGen != 0) {
77 args << QString("-XX:PermSize=%1m").arg(m_permGen);
78 }
79
80 args.append({ "-jar", checkerJar });
81 process->setArguments(args);
82 process->setProgram(m_path);
83 process->setProcessChannelMode(QProcess::SeparateChannels);
84 process->setProcessEnvironment(CleanEnviroment());
85 qDebug() << "Running java checker:" << m_path << args.join(" ");
86
87 connect(process.get(), QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, &JavaChecker::finished);
88 connect(process.get(), &QProcess::errorOccurred, this, &JavaChecker::error);
89 connect(process.get(), &QProcess::readyReadStandardOutput, this, &JavaChecker::stdoutReady);
90 connect(process.get(), &QProcess::readyReadStandardError, this, &JavaChecker::stderrReady);
91 connect(&killTimer, &QTimer::timeout, this, &JavaChecker::timeout);
92 killTimer.setSingleShot(true);
93 killTimer.start(15000);
94 process->start();
95}
96
97void JavaChecker::stdoutReady()
98{

Callers

nothing calls this directly

Calls 9

getPathNameInLocal8bitFunction · 0.85
splitArgsFunction · 0.85
QStringClass · 0.85
appendMethod · 0.80
isEmptyMethod · 0.45
resetMethod · 0.45
sizeMethod · 0.45
getMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected