MCPcopy Create free account
hub / github.com/MiniZinc/MiniZincIDE / run

Method run

MiniZincIDE/process.cpp:383–404  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

381
382
383MznProcess::RunResult MznProcess::run(const QStringList& args, const QString& cwd)
384{
385 Q_ASSERT(p.state() == QProcess::NotRunning);
386 p.setWorkingDirectory(cwd);
387 const QStringList& exec = MznDriver::get().minizincExecutable();
388 QStringList execArgs = args;
389 for (unsigned int i = exec.size() - 1; i > 0; i--) {
390 execArgs.push_front(exec[i]);
391 }
392 p.start(exec[0], execArgs, MznDriver::get().mznDistribPath());
393 if (!p.waitForStarted()) {
394 throw ProcessError(QString("Failed to find or start %1 %2 in '%3'.")
395 .arg(exec[0])
396 .arg(args.join(" "))
397 .arg(MznDriver::get().mznDistribPath())
398 );
399 }
400 if (!p.waitForFinished()) {
401 p.terminate();
402 }
403 return { p.exitCode(), p.readAllStandardOutput(), p.readAllStandardError() };
404}
405
406
407MznProcess::RunResult MznProcess::run(const SolverConfiguration& sc, const QStringList& args, const QString& cwd)

Callers 3

solver.cppFile · 0.45
solveNextMethod · 0.45
setLocationMethod · 0.45

Calls 6

ProcessErrorClass · 0.85
terminateMethod · 0.80
runFunction · 0.50
sizeMethod · 0.45
startMethod · 0.45
toJSONMethod · 0.45

Tested by

no test coverage detected