#ifndef DIRSCANWORKER_H #define DIRSCANWORKER_H #include #include #include #include "concurrentqueue.h" #include "wildcardmatcher.h" class DirScanWorker : public QObject, public QRunnable { Q_OBJECT protected: unsigned int progressReportThreshold = 1000; ConcurrentQueue *queue = nullptr; ConcurrentQueue *resultQueue = nullptr; WildcardMatcher wildcardMatcher; QVector results; std::atomic *stopToken; public: DirScanWorker(ConcurrentQueue &queue, ConcurrentQueue &resultQueue, QStringList ignorePattern, unsigned int progressReportThreshold, std::atomic &stopToken); void run() override; signals: void progress(unsigned int); void finished(); }; #endif // DIRSCANWORKER_H