ScanManager::ScanManager(MemStorage *memStor, QObject *parent) : QObject(parent) { scanner = new PLCScanner(); scanner->moveToThread(&scanThread); connect(&scanThread,SIGNAL(finished()),scanner,SLOT(deleteLater())); connect(this,SIGNAL(startProcess()),scanner,SLOT(scanProcess())); connect(scanner,SIGNAL(updateBlock(QString,int,QByteArray)),memStor,SLOT(updateBlock(QString,int,QByteArray))); connect(scanner,SIGNAL(updateCorrectRequestCnt(int)),this,SLOT(updCorrAnswerCnt(int))); connect(scanner,SIGNAL(updateErrorRequestCnt(int)),this,SLOT(updErrAnswerCnt(int))); connect(scanner,SIGNAL(addMessage(QString)),this,SIGNAL(addMessage(QString))); connect(scanner,SIGNAL(errMessage(QString)),this,SIGNAL(errMessage(QString))); connect(scanner,SIGNAL(updateTimeStr(QString)),this,SIGNAL(updateTimeStr(QString))); scanThread.start(); emit startProcess(); }
void IRCBot::scanStatus( size_t serverID ) { vector<ftpScanStatus*> *scanStatus = _smokingman->ftpScanStatusGet(); vector<ftpScanStatus*>::iterator scanIT; vector<size_t>::iterator statIT; statIT = find(_statWait.begin(), _statWait.end(), serverID ); if(statIT == _statWait.end()) return; _statWait.erase( statIT ); for( scanIT = scanStatus->begin(); scanIT != scanStatus->end(); scanIT++ ) { if( (*scanIT)->_serverID == serverID ) scanProcess( *scanIT, channelPUBLIC ); } }