bool VMsgLog::kAccelKey( gui_key _key ) { int key = _key; switch( key ) { case LOG_ESCAPE_KEY: { stopRequest( NULL ); break; } case LOG_HELP_KEY: { helpRequest( NULL ); break; } } return TRUE; }
void ProviderAgent::run() { PEG_METHOD_ENTER(TRC_PROVIDERAGENT, "ProviderAgent::run"); // Enable the signal handler to terminate gracefully on SIGHUP and SIGTERM getSigHandle()->registerHandler(PEGASUS_SIGHUP, _terminateSignalHandler); getSigHandle()->activate(PEGASUS_SIGHUP); getSigHandle()->registerHandler(PEGASUS_SIGTERM, _terminateSignalHandler); getSigHandle()->activate(PEGASUS_SIGTERM); // Restore the SIGCHLD signal behavior to its default action getSigHandle()->defaultAction(PEGASUS_SIGCHLD); #ifdef PEGASUS_OS_ZOS // Establish handling signal send to us on USS shutdown getSigHandle()->registerHandler(PEGASUS_SIGDANGER, _terminateSignalHandler); getSigHandle()->activate(PEGASUS_SIGDANGER); // enable process to receive SIGDANGER on USS shutdown __shutdown_registration(_SDR_NOTIFY, _SDR_REGPROCESS, _SDR_SENDSIGDANGER); #endif #ifdef PEGASUS_OS_PASE // PASE environment need more signal handler getSigHandle()->registerHandler(SIGFPE, _synchronousSignalHandler); getSigHandle()->activate(SIGFPE); getSigHandle()->registerHandler(SIGILL, _synchronousSignalHandler); getSigHandle()->activate(SIGILL); getSigHandle()->registerHandler(SIGSEGV, _synchronousSignalHandler); getSigHandle()->activate(SIGSEGV); getSigHandle()->registerHandler(SIGIO, _asynchronousSignalHandler); getSigHandle()->activate(SIGIO); #endif while (!_terminating) { Boolean active = true; try { // // Read and process the next request // active = _readAndProcessRequest(); } catch (Exception& e) { PEG_TRACE((TRC_PROVIDERAGENT, Tracer::LEVEL1, "Unexpected Exception from _readAndProcessRequest(): %s", (const char*)e.getMessage().getCString())); _terminating = true; } catch (...) { PEG_TRACE_CSTRING(TRC_PROVIDERAGENT, Tracer::LEVEL1, "Unexpected exception from _readAndProcessRequest()."); _terminating = true; } if (_terminating) { if (!_providersStopped) { // // Stop all providers // CIMStopAllProvidersRequestMessage stopRequest("0", QueueIdStack(0)); AutoPtr<Message> stopResponse(_processRequest(&stopRequest)); // If there are agent threads running exit from here.If provider // is not responding cimprovagt may loop forever in ThreadPool // destructor waiting for running threads to become idle. if (_threadPool.runningCount()) { PEG_TRACE_CSTRING(TRC_PROVIDERAGENT, Tracer::LEVEL1, "Agent threads are running, terminating forcibly."); exit(1); } } } else if (!active) { // // Stop agent process when no more providers are loaded // try { if (!_providerManagerRouter.hasActiveProviders() && (_threadPool.runningCount() == 0)) { PEG_TRACE_CSTRING(TRC_PROVIDERAGENT, Tracer::LEVEL2, "No active providers. Exiting."); _terminating = true; } else { _threadPool.cleanupIdleThreads(); } } catch (...) { // Do not terminate the agent on this exception PEG_TRACE_CSTRING(TRC_PROVIDERAGENT, Tracer::LEVEL1, "Unexpected exception from hasActiveProviders()"); } } } // Notify the cimserver that the provider agent is exiting cleanly. Uint32 messageLength = 0; _pipeToServer->writeBuffer((const char*)&messageLength, sizeof(Uint32)); PEG_METHOD_EXIT(); }
m_targetTag = targetFolder; m_downloader = downloader; m_combineFolders = combineFolders; // m_thread = new QThread(); moveToThread(m_thread); connect(m_thread, SIGNAL(started()), SLOT(movePersonalFolderToGroupDB())); m_thread->start(); } void CWizDocumentOperator::bindSignalsToProgressDialog(CWizProgressDialog* progress) { QObject::connect(this, SIGNAL(progress(int,int)), progress, SLOT(setProgress(int,int))); QObject::connect(this, SIGNAL(newAction(QString)), progress, SLOT(setActionString(QString))); QObject::connect(this, SIGNAL(finished()), progress, SLOT(accept())); QObject::connect(progress, SIGNAL(stopRequest()), this, SLOT(stop()), Qt::DirectConnection); } void CWizDocumentOperator::stop() { m_stop = true; } void CWizDocumentOperator::copyDocumentToPersonalFolder() { int nCounter = 0; CWizDocumentDataArray::iterator it; for (it = m_arrayDocument.begin(); it != m_arrayDocument.end() && !m_stop; it++) { const WIZDOCUMENTDATA& doc = *it; emit newAction(tr("Copy note %1").arg(doc.strTitle));
UpdateFeeds::UpdateFeeds(QObject *parent, bool addFeed) : QObject(parent) , updateObject_(NULL) , requestFeed_(NULL) , parseObject_(NULL) , faviconObject_(NULL) , updateFeedThread_(NULL) , getFaviconThread_(NULL) , addFeed_(addFeed) , saveMemoryDBTimer_(NULL) { getFeedThread_ = new QThread(); getFeedThread_->setObjectName("getFeedThread_"); updateFeedThread_ = new QThread(); updateFeedThread_->setObjectName("updateFeedThread_"); Settings settings; int timeoutRequest = settings.value("Settings/timeoutRequest", 15).toInt(); int numberRequests = settings.value("Settings/numberRequest", 10).toInt(); int numberRepeats = settings.value("Settings/numberRepeats", 2).toInt(); requestFeed_ = new RequestFeed(timeoutRequest, numberRequests, numberRepeats); parseObject_ = new ParseObject(); if (addFeed_) { connect(parent, SIGNAL(signalRequestUrl(int,QString,QDateTime,QString)), requestFeed_, SLOT(requestUrl(int,QString,QDateTime,QString))); connect(requestFeed_, SIGNAL(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString)), parent, SLOT(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString))); connect(parent, SIGNAL(xmlReadyParse(QByteArray,int,QDateTime,QString)), parseObject_, SLOT(parseXml(QByteArray,int,QDateTime,QString))); connect(parseObject_, SIGNAL(signalFinishUpdate(int,bool,int,QString)), parent, SLOT(slotUpdateFeed(int,bool,int,QString))); } else { getFaviconThread_ = new QThread(); getFaviconThread_->setObjectName("getFaviconThread_"); updateObject_ = new UpdateObject(); faviconObject_ = new FaviconObject(); connect(updateObject_, SIGNAL(signalRequestUrl(int,QString,QDateTime,QString)), requestFeed_, SLOT(requestUrl(int,QString,QDateTime,QString))); connect(requestFeed_, SIGNAL(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString)), updateObject_, SLOT(getUrlDone(int,int,QString,QString,QByteArray,QDateTime,QString))); connect(requestFeed_, SIGNAL(setStatusFeed(int,QString)), parent, SLOT(setStatusFeed(int,QString))); connect(parent, SIGNAL(signalStopUpdate()), requestFeed_, SLOT(stopRequest())); connect(parent, SIGNAL(signalGetFeedTimer(int)), updateObject_, SLOT(slotGetFeedTimer(int))); connect(parent, SIGNAL(signalGetAllFeedsTimer()), updateObject_, SLOT(slotGetAllFeedsTimer())); connect(parent, SIGNAL(signalGetAllFeeds()), updateObject_, SLOT(slotGetAllFeeds())); connect(parent, SIGNAL(signalGetFeed(int,QString,QDateTime,int)), updateObject_, SLOT(slotGetFeed(int,QString,QDateTime,int))); connect(parent, SIGNAL(signalGetFeedsFolder(QString)), updateObject_, SLOT(slotGetFeedsFolder(QString))); connect(parent, SIGNAL(signalImportFeeds(QByteArray)), updateObject_, SLOT(slotImportFeeds(QByteArray))); connect(updateObject_, SIGNAL(showProgressBar(int)), parent, SLOT(showProgressBar(int))); connect(updateObject_, SIGNAL(loadProgress(int)), parent, SLOT(slotSetValue(int))); connect(updateObject_, SIGNAL(signalMessageStatusBar(QString,int)), parent, SLOT(showMessageStatusBar(QString,int))); connect(updateObject_, SIGNAL(signalUpdateFeedsModel()), parent, SLOT(feedsModelReload()), Qt::BlockingQueuedConnection); connect(updateObject_, SIGNAL(xmlReadyParse(QByteArray,int,QDateTime,QString)), parseObject_, SLOT(parseXml(QByteArray,int,QDateTime,QString)), Qt::QueuedConnection); connect(parseObject_, SIGNAL(signalFinishUpdate(int,bool,int,QString)), updateObject_, SLOT(finishUpdate(int,bool,int,QString)), Qt::QueuedConnection); connect(updateObject_, SIGNAL(feedUpdated(int,bool,int,bool)), parent, SLOT(slotUpdateFeed(int,bool,int,bool))); connect(updateObject_, SIGNAL(setStatusFeed(int,QString)), parent, SLOT(setStatusFeed(int,QString))); qRegisterMetaType<FeedCountStruct>("FeedCountStruct"); connect(parseObject_, SIGNAL(feedCountsUpdate(FeedCountStruct)), parent, SLOT(slotFeedCountsUpdate(FeedCountStruct))); connect(parseObject_, SIGNAL(signalPlaySound(QString)), parent, SLOT(slotPlaySound(QString))); connect(parseObject_, SIGNAL(signalAddColorList(int,QString)), parent, SLOT(slotAddColorList(int,QString))); connect(parent, SIGNAL(signalNextUpdate(bool)), updateObject_, SLOT(slotNextUpdateFeed(bool))); connect(updateObject_, SIGNAL(signalUpdateModel(bool)), parent, SLOT(feedsModelReload(bool))); connect(updateObject_, SIGNAL(signalUpdateNews()), parent, SLOT(slotUpdateNews())); connect(updateObject_, SIGNAL(signalCountsStatusBar(int,int)), parent, SLOT(slotCountsStatusBar(int,int))); connect(parent, SIGNAL(signalRecountCategoryCounts()), updateObject_, SLOT(slotRecountCategoryCounts())); qRegisterMetaType<QList<int> >("QList<int>"); connect(updateObject_, SIGNAL(signalRecountCategoryCounts(QList<int>,QList<int>,QList<int>,QStringList)), parent, SLOT(slotRecountCategoryCounts(QList<int>,QList<int>,QList<int>,QStringList))); connect(parent, SIGNAL(signalRecountFeedCounts(int,bool)), updateObject_, SLOT(slotRecountFeedCounts(int,bool))); connect(updateObject_, SIGNAL(feedCountsUpdate(FeedCountStruct)), parent, SLOT(slotFeedCountsUpdate(FeedCountStruct))); connect(updateObject_, SIGNAL(signalFeedsViewportUpdate()), parent, SLOT(slotFeedsViewportUpdate())); connect(parent, SIGNAL(signalSetFeedRead(int,int,int,QList<int>)), updateObject_, SLOT(slotSetFeedRead(int,int,int,QList<int>))); connect(parent, SIGNAL(signalMarkFeedRead(int,bool,bool)), updateObject_, SLOT(slotMarkFeedRead(int,bool,bool))); connect(parent, SIGNAL(signalRefreshInfoTray()), updateObject_, SLOT(slotRefreshInfoTray())); connect(updateObject_, SIGNAL(signalRefreshInfoTray(int,int)), parent, SLOT(slotRefreshInfoTray(int,int))); connect(parent, SIGNAL(signalUpdateStatus(int,bool)), updateObject_, SLOT(slotUpdateStatus(int,bool))); connect(parent, SIGNAL(signalMarkAllFeedsRead()), updateObject_, SLOT(slotMarkAllFeedsRead())); connect(parent, SIGNAL(signalMarkReadCategory(int,int)), updateObject_, SLOT(slotMarkReadCategory(int,int))); connect(parent, SIGNAL(signalRefreshNewsView(int)), updateObject_, SIGNAL(signalMarkAllFeedsRead(int))); connect(updateObject_, SIGNAL(signalMarkAllFeedsRead(int)), parent, SLOT(slotRefreshNewsView(int))); connect(parent, SIGNAL(signalMarkAllFeedsOld()), updateObject_, SLOT(slotMarkAllFeedsOld())); connect(parent, SIGNAL(signalSetFeedsFilter(bool)), updateObject_, SIGNAL(signalSetFeedsFilter(bool))); connect(updateObject_, SIGNAL(signalSetFeedsFilter(bool)), parent, SLOT(setFeedsFilter(bool))); connect(mainApp, SIGNAL(signalSqlQueryExec(QString)), updateObject_, SLOT(slotSqlQueryExec(QString))); connect(mainApp, SIGNAL(signalRunUserFilter(int, int)), parseObject_, SLOT(runUserFilter(int, int))); // faviconObject_ connect(parent, SIGNAL(faviconRequestUrl(QString,QString)), faviconObject_, SLOT(requestUrl(QString,QString))); connect(faviconObject_, SIGNAL(signalIconRecived(QString,QByteArray,QString)), parent, SLOT(slotIconFeedPreparing(QString,QByteArray,QString))); connect(parent, SIGNAL(signalIconFeedReady(QString,QByteArray)), updateObject_, SLOT(slotIconSave(QString,QByteArray))); connect(updateObject_, SIGNAL(signalIconUpdate(int,QByteArray)), parent, SLOT(slotIconFeedUpdate(int,QByteArray))); updateObject_->moveToThread(updateFeedThread_); faviconObject_->moveToThread(getFaviconThread_); getFaviconThread_->start(QThread::LowPriority); startSaveTimer(); } requestFeed_->moveToThread(getFeedThread_); parseObject_->moveToThread(updateFeedThread_); getFeedThread_->start(QThread::LowPriority); updateFeedThread_->start(QThread::LowPriority); }