Thread::Thread(uint _serverId, uint _threadId, uint to, uint rc, bool _validated, bool _validate, QWidget * p, NntpHost *nh) : serverId(_serverId), threadId(_threadId), threadTimeout(rc * 60 * 1000) /* minutes */, validated(_validated) { retryCount = 0; timeout = to * 1000; //qDebug() << "Idle to = " << threadTimeout; threadBytes = new uint; *threadBytes = 0; prevBytes = 0; resetSpeed(); QueueScheduler* queueScheduler = ((QMgr*)p)->getQueueScheduler(); nntpT = new NntpThread(serverId, threadId, threadBytes, queueScheduler->getIsRatePeriod(), queueScheduler->getIsNilPeriod(), validated, _validate, nh, (QMgr*)p); connect(nntpT, SIGNAL(StartedWorking(int, int)), p, SLOT(started(int, int))); connect(nntpT, SIGNAL(Start(Job *)), p, SLOT(start(Job *))); connect(nntpT, SIGNAL(DownloadFinished(Job *)), p, SLOT(finished(Job *))); connect(nntpT, SIGNAL(DownloadCancelled(Job *)), p, SLOT(downloadCancelled(Job *))); connect(nntpT, SIGNAL(DownloadError(Job *, int)), p, SLOT(downloadError(Job *, int))); connect(nntpT, SIGNAL(Finished(Job *)), p, SLOT(finished(Job *))); connect(nntpT, SIGNAL(Cancelled(Job *)), p, SLOT(cancel(Job *))); connect(nntpT, SIGNAL(Err(Job *, int)), p, SLOT(Err(Job *, int))); connect(nntpT, SIGNAL(Failed(Job *, int)), p, SLOT(Failed(Job *, int))); connect(nntpT, SIGNAL(SigPaused(int, int, bool)), p, SLOT(paused(int, int, bool))); connect(nntpT, SIGNAL(SigDelayed_Delete(int, int)), p, SLOT(delayedDelete(int, int))); connect(nntpT, SIGNAL(SigReady(int, int)), p, SLOT(stopped(int, int))); connect(nntpT, SIGNAL(SigClosingConnection(int, int)), p, SLOT(connClosed(int, int))); connect(nntpT, SIGNAL(SigUpdate(Job *, uint, uint, uint)), p, SLOT(update(Job *, uint, uint, uint))); connect(nntpT, SIGNAL(SigUpdatePost(Job *, uint, uint, uint, uint)), p, SLOT(updatePost(Job *, uint, uint, uint, uint))); connect(nntpT, SIGNAL(SigUpdateLimits(Job *, uint, uint, uint)), p, SLOT(updateLimits(Job *, uint, uint, uint))); connect(nntpT, SIGNAL(sigHeaderDownloadProgress(Job*, quint64, quint64, quint64)), p, SLOT(slotHeaderDownloadProgress(Job*, quint64, quint64, quint64))); connect(nntpT, SIGNAL(SigExtensions(Job *, quint16, quint64)), p, SLOT(updateExtensions(Job *, quint16, quint64))); connect(nntpT, SIGNAL(logMessage(int, QString)), quban->getLogAlertList(), SLOT(logMessage(int, QString))); connect(nntpT, SIGNAL(logEvent(QString)), quban->getLogEventList(), SLOT(logEvent(QString))); connect(nntpT, SIGNAL(serverValidated(uint, bool, QString, QList<QSslError>)), p, SLOT(serverValidated(uint, bool, QString, QList<QSslError>))); connect(nntpT, SIGNAL(registerSocket(RcSslSocket*)), p, SIGNAL(registerSocket(RcSslSocket*))); // Pass it on to RateController connect(nntpT, SIGNAL(unregisterSocket(RcSslSocket*)), p, SIGNAL(unregisterSocket(RcSslSocket*))); // Pass it on to RateController speedTimer = new QTimer(); speedTimer->setSingleShot(false); idleTimer = new QTimer(); retryTimer = new QTimer(); connect(speedTimer, SIGNAL(timeout()), SLOT(slotSpeedTimeout())); connect(idleTimer, SIGNAL(timeout()), SLOT(slotIdleTimeout())); connect(retryTimer, SIGNAL(timeout()), SLOT(slotRetryTimeout())); }