Comit helper-classes for now
This commit is contained in:
parent
60f845aa8d
commit
e2d9c5aa90
66
worker.cpp
Normal file
66
worker.cpp
Normal file
@ -0,0 +1,66 @@
|
||||
#include "worker.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QTimer>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QThread>
|
||||
|
||||
#include "message_handler.h"
|
||||
#include "plugins/interfaces.h"
|
||||
|
||||
|
||||
Worker::Worker(QString update_ctrl_file, QString workingDir)
|
||||
: m_update_ctrl_file(update_ctrl_file)
|
||||
, m_workingDir(workingDir)
|
||||
, m_workerThread("workerThread") {
|
||||
|
||||
this->moveToThread(&m_workerThread);
|
||||
m_workerThread.start();
|
||||
QThread::usleep(100000);
|
||||
|
||||
int cnt = 0;
|
||||
while (!m_workerThread.isRunning()) {
|
||||
if (++cnt > 5) {
|
||||
qCritical() << "starting worker thread FAILED";
|
||||
return;
|
||||
}
|
||||
QThread::sleep(1);
|
||||
}
|
||||
|
||||
connect(this, SIGNAL(workNow()), this, SLOT(work()), Qt::QueuedConnection);
|
||||
connect(&m_timer, SIGNAL(timeout()), this, SLOT(update()));
|
||||
m_timer.setSingleShot(true);
|
||||
m_timer.start(1000);
|
||||
}
|
||||
|
||||
Worker::~Worker() {
|
||||
int cnt = 0;
|
||||
m_workerThread.quit();
|
||||
while (!m_workerThread.isFinished()) {
|
||||
if (!m_workerThread.wait(1000)) {
|
||||
if (++cnt > 5) {
|
||||
qCritical() << "stopping worker thread FAILED";
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Worker::update() {
|
||||
qCritical() << __func__ << ":" << __LINE__;
|
||||
emit workNow();
|
||||
}
|
||||
|
||||
void Worker::work() {
|
||||
qCritical() << __func__ << ":" << __LINE__;
|
||||
//Update m_update(m_update_ctrl_file, m_workingDir);
|
||||
QThread::sleep(3);
|
||||
//if (m_update.doUpdate()) {
|
||||
//}
|
||||
m_workerThread.quit();
|
||||
QApplication::quit();
|
||||
}
|
30
worker.h
Normal file
30
worker.h
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef WORKER_H_INCLUDED
|
||||
#define WORKER_H_INCLUDED
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QTimer>
|
||||
|
||||
#include "worker_thread.h"
|
||||
|
||||
class Worker : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
QString m_update_ctrl_file;
|
||||
QString m_workingDir;
|
||||
WorkerThread m_workerThread;
|
||||
QTimer m_timer;
|
||||
public:
|
||||
explicit Worker(QString update_ctrl_file, QString workingDir);
|
||||
~Worker();
|
||||
void quit() { return m_workerThread.quit(); }
|
||||
|
||||
signals:
|
||||
void workNow();
|
||||
|
||||
public slots:
|
||||
void work();
|
||||
void update();
|
||||
};
|
||||
|
||||
#endif // WORKER_H_INCLUDED
|
13
worker_thread.cpp
Normal file
13
worker_thread.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
#include "worker_thread.h"
|
||||
|
||||
WorkerThread::WorkerThread(QString const &name,
|
||||
QObject *parent) : QThread(parent) {
|
||||
this->setObjectName(name);
|
||||
}
|
||||
|
||||
WorkerThread::~WorkerThread() {
|
||||
}
|
||||
|
||||
//void WorkerThread::run() {
|
||||
//
|
||||
//}
|
17
worker_thread.h
Normal file
17
worker_thread.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef WORKER_THREAD_H_INCLUDED
|
||||
#define WORKER_THREAD_H_INCLUDED
|
||||
|
||||
#include <QThread>
|
||||
#include <QString>
|
||||
|
||||
class WorkerThread : public QThread {
|
||||
Q_OBJECT
|
||||
public:
|
||||
WorkerThread(QString const &name, QObject *parent = nullptr);
|
||||
virtual ~WorkerThread();
|
||||
|
||||
protected:
|
||||
// virtual void run();
|
||||
};
|
||||
|
||||
#endif // WORKER_THREAD_H_INCLUDED
|
Loading…
Reference in New Issue
Block a user