| 444 | } |
| 445 | |
| 446 | void TOPPASToolVertex::run() |
| 447 | { |
| 448 | __DEBUG_BEGIN_METHOD__ |
| 449 | |
| 450 | //check if everything ready (there might be more than one upstream node - ALL need to be ready) |
| 451 | if (!isUpstreamFinished()) |
| 452 | { |
| 453 | return; |
| 454 | } |
| 455 | |
| 456 | if (finished_) |
| 457 | { |
| 458 | OPENMS_LOG_ERROR << "This should not happen. Calling an already finished node '" << this->name_ << "' (#" << this->getTopoNr() << ")!" << std::endl; |
| 459 | throw Exception::IllegalSelfOperation(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION); |
| 460 | } |
| 461 | TOPPASScene* ts = getScene_(); |
| 462 | |
| 463 | QString ini_file = ts->getTempDir() |
| 464 | + QDir::separator() |
| 465 | + getOutputDir().toQString() |
| 466 | + QDir::separator() |
| 467 | + name_.toQString(); |
| 468 | if (!type_.empty()) |
| 469 | { |
| 470 | ini_file += "_" + type_.toQString(); |
| 471 | } |
| 472 | // do not write the ini yet - we might need to alter it |
| 473 | |
| 474 | RoundPackages pkg; |
| 475 | String error_msg(""); |
| 476 | bool success = buildRoundPackages(pkg, error_msg); |
| 477 | if (!success) |
| 478 | { |
| 479 | OPENMS_LOG_ERROR << "Could not retrieve input files from upstream nodes...\n"; |
| 480 | emit toolFailed(error_msg.toQString()); |
| 481 | return; |
| 482 | } |
| 483 | |
| 484 | // all inputs are ready --> GO! |
| 485 | if (!updateCurrentOutputFileNames(pkg, error_msg)) // based on input, we prepare output names |
| 486 | { |
| 487 | emit toolFailed(error_msg.toQString()); |
| 488 | return; |
| 489 | } |
| 490 | |
| 491 | createDirs(); |
| 492 | |
| 493 | //emit toolStarted(); //disabled! Every signal emitted here does only mean the process is queued(!) not that its executed right away |
| 494 | |
| 495 | /// update round status |
| 496 | round_total_ = (int) pkg.size(); // take number of rounds from previous tool(s) - should all be equal |
| 497 | round_counter_ = 0; // once round_counter_ reaches round_total_, we are done |
| 498 | |
| 499 | QStringList shared_args; |
| 500 | if (!type_.empty()) |
| 501 | { |
| 502 | shared_args << "-type" << type_.toQString(); |
| 503 | } |
no test coverage detected