int cancelProgram (const char *pidFile) { int cancelled = 0; FILE *file; if ((file = fopen(pidFile, "r"))) { char buffer[0X100]; const char *line; if ((line = fgets(buffer, sizeof(buffer), file))) { char *end; long int pid = strtol(line, &end, 10); if (!*end || isspace(*end)) { if (cancelProcess(pid)) cancelled = 1; } } fclose(file); } else { logMessage(LOG_ERR, "%s: %s: %s", gettext("pid file open error"), pidFile, strerror(errno)); } return cancelled; }
CNewSwitcher::CNewSwitcher(QWidget *parent) : QDialog(parent) { ui.setupUi(this); ui.name->setText("Router"); ui.swichType->addItem("Cisco 7609"); ui.swichType->addItem("Cisco 7609-S"); ui.portnum->addItem("32"); ui.portnum->addItem("48"); ui.id->addItem("1"); ui.protocol->addItem("Default"); ui.protocol->addItem("OSPF"); ui.address->addItem(tr("骨干层")); ui.address->addItem(tr("汇聚层")); ui.address->addItem(tr("接入层")); connect( ui.Switch_OK, SIGNAL(clicked()), this ,SLOT(okProcess()) ); connect( ui.Switch_Cancel, SIGNAL(clicked()), this ,SLOT(cancelProcess()) ); }
foreach (const ExternalToolValidation& validation, validations) { if (externalToolProcess != NULL) { delete externalToolProcess; externalToolProcess = NULL; } checkArchitecture(validation.executableFile); CHECK_OP(stateInfo, ); externalToolProcess = new QProcess(); setEnvironment(tool); externalToolProcess->start(validation.executableFile, validation.arguments); bool started = externalToolProcess->waitForStarted(3000); if (!started) { errorMsg = validation.possibleErrorsDescr.value(ExternalToolValidation::DEFAULT_DESCR_KEY, ""); if (!errorMsg.isEmpty()) { stateInfo.setError(errorMsg); } else { stateInfo.setError(tr("Tool does not start.<br>" "It is possible that the specified executable file " "<i>%1</i> for %2 tool is invalid. You can change " "the path to the executable file in the external " "tool settings in the global preferences.") .arg(toolPath) .arg(toolName)); } isValid = false; return; } int elapsedTime = 0; while (!externalToolProcess->waitForFinished(CHECK_PERIOD_MS)) { elapsedTime += CHECK_PERIOD_MS; if (isCanceled() || elapsedTime >= TIMEOUT_MS) { cancelProcess(); } } if (!parseLog(validation)) { return; } if (!isValid) { return; } }
connect(d->diffusionTractographyToolBox, SIGNAL(removeToolBox(medToolBox *)), this, SLOT(removeToolBox(medToolBox *))); // -- View toolboxes -- QList<QString> toolboxNames = medToolBoxFactory::instance()->toolBoxesFromCategory("view"); foreach(QString toolbox, toolboxNames) { addToolBox( medToolBoxFactory::instance()->createToolBox(toolbox, parent) ); } connect(d->diffusionEstimationToolBox, SIGNAL(processRequested(QString, QString)), this, SLOT(runProcess(QString, QString))); connect(d->diffusionScalarMapsToolBox, SIGNAL(processRequested(QString, QString)), this, SLOT(runProcess(QString, QString))); connect(d->diffusionTractographyToolBox, SIGNAL(processRequested(QString, QString)), this, SLOT(runProcess(QString, QString))); connect(d->diffusionEstimationToolBox, SIGNAL(processCancelled()), this, SLOT(cancelProcess())); connect(d->diffusionTractographyToolBox, SIGNAL(processCancelled()), this, SLOT(cancelProcess())); this->addToolBox( d->diffusionEstimationToolBox ); this->addToolBox( d->diffusionScalarMapsToolBox ); this->addToolBox( d->diffusionTractographyToolBox ); d->processRunning = false; } medDiffusionWorkspace::~medDiffusionWorkspace() { delete d; d = NULL; }