void PimSettingsBackupRestore::restoreNextStep() { if (mStoreIterator != mStored.constEnd()) { switch (mStoreIterator.key()) { case Utils::KMail: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportMailJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::KAddressBook: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportAddressbookJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::KAlarm: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportAlarmJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::KOrganizer: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportCalendarJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::KNotes: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportNotesJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::Akregator: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportAkregatorJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::Blogilo: if (mStoreIterator.value().numberSteps != 0) { mImportExportData = new ImportBlogiloJob(this, mStoreIterator.value().types, mArchiveStorage, mStoreIterator.value().numberSteps); executeJob(); } break; case Utils::Unknown: break; } } else { restoreFinished(); } }
void *superKernel(struct Parameter_t *val) { /*struct Parameter_t *params = (struct Parameter_t *) val; Queue incoming = params->incoming; Queue results = params->results; int *kill = params->kill;*/ JobPointer currentJob; int i; //This is the function that all worker threads execute while(!(kill)) { // dequeue a task if avaliable, otherwise sleep //#pragma omp critical //{ sleep(SLEEP_POOL_LENGTH); sleep(SLEEP_POOL_LENGTH); if ((currentJob = MaybeFandD(val->incoming)) == NULL) { sleep(SLEEP_POOL_LENGTH); continue; } //} //if (currentJob == NULL) continue; printf("Super exec - JobID = %d - JobType = %d - Thread = %d\n", currentJob->JobID, currentJob->JobType, omp_get_thread_num()); //execute the task JobPointer retval; retval = executeJob(currentJob); //enqueue the result EnqueueJob(retval, val->results); /*//if (!kill) //{ //dequeue a task currentJob = Front(val->incoming); Dequeue(val->incoming); //execute the task JobPointer retval; retval = executeJob(currentJob); //enqueue the result EnqueueJob(retval, val->results); printf("Resultado empilhado\n\n"); //}*/ } return; }
void Capture::startSequence() { if (displayCheck->isChecked() == false && darkSubCheck->isChecked()) { KMessageBox::error(this, i18n("Auto dark subtract is not supported in batch mode.")); return; } if (queueTable->rowCount() ==0) addJob(); jobCount = jobs.count(); SequenceJob *job = jobs.at(0); jobIndex = 0; executeJob(job); }
void Capture::captureOne() { addJob(true); executeJob(jobs.last()); }
void Capture::newFITS(IBLOB *bp) { ISD::CCDChip *tChip = NULL; if (!strcmp(bp->name, "CCD2")) tChip = currentCCD->getChip(ISD::CCDChip::GUIDE_CCD); else tChip = currentCCD->getChip(ISD::CCDChip::PRIMARY_CCD); if (tChip != targetChip) return; if (targetChip->getCaptureMode() == FITS_FOCUS || targetChip->getCaptureMode() == FITS_GUIDE) return; // If the FITS is not for our device, simply ignore if (QString(bp->bvp->device) != currentCCD->getDeviceName() || (startB->isEnabled() && previewB->isEnabled())) return; if (calibrationState == CALIBRATE_START) { calibrationState = CALIBRATE_DONE; seqTimer->start(seqDelay); return; } if (darkSubCheck->isChecked() && calibrationState == CALIBRATE_DONE) { calibrationState = CALIBRATE_NONE; FITSView *calibrateImage = targetChip->getImage(FITS_CALIBRATE); FITSView *currentImage = targetChip->getImage(FITS_NORMAL); FITSImage *image_data = currentImage->getImageData(); if (calibrateImage && currentImage) image_data->subtract(calibrateImage->getImageData()->getImageBuffer()); } if (seqTotalCount < 0) { jobs.removeOne(activeJob); delete (activeJob); activeJob = NULL; stopSequence(); return; } seqCurrentCount++; imgProgress->setValue(seqCurrentCount); appendLogText(i18n("Received image %1 out of %2.", seqCurrentCount, seqTotalCount)); currentImgCountOUT->setText( QString::number(seqCurrentCount)); // if we're done if (seqCurrentCount == seqTotalCount) { stopSequence(); activeJob->status = SequenceJob::JOB_DONE; activeJob->statusCell->setText(SequenceJob::statusStrings[activeJob->status]); jobCount--; if (jobCount > 0) { jobIndex++; SequenceJob *job = jobs.at(jobIndex); executeJob(job); } } else seqTimer->start(seqDelay); }