/
MaximU
/
application
Обзор
Документация
Войти
/
MaximU
/
application
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
workerthread.h
48 строк
2 KB
user
Упорядочены #include.
27 июл 2026, 14:34
27 июл 2026, 14:34
174be87
Код
Авторство
О чём код?
#ifndef WORKERTHREAD_H #define WORKERTHREAD_H #include <QSet> #include <QThread> static const int ResultUndefined = -1; //!< Код результата не определен. static const int BlockIDUndefined = -1; //!< Не определен. /*! * \brief Класс рабочего потока приложения. */ class WorkerThread : public QThread { Q_OBJECT friend int main(int argc, char *argv[]); public: WorkerThread(); ~WorkerThread() override; protected: /*! * \brief Идентификатор текущего исполняемого алгоритмического блока. * \details При возникновении исключения при выполнении алгоритмических блоков переменная сообщает о блоке, в котором возникло исключение. */ int mBlockID = BlockIDUndefined; virtual void initSpecific() {} virtual void exitSpecific() {} virtual void processInput(char *info, QSet<int> &results) { Q_UNUSED(info); Q_UNUSED(results) } virtual void prepareOutput(const QSet<int> &results) { Q_UNUSED(results) } virtual void exceptionSpecific(QString &message) { Q_UNUSED(message) } private: bool mAbort = false; //!< Признак останова выполнения потока. void initWorkerThread(); void exitWorkerThread(); void run() override; std::shared_ptr<char[]> waitForData(); signals: void iterationDone(const QSet<int> &results); void exception(const QString &message); }; #endif // WORKERTHREAD_H