Add thread manager for QThreads

This commit is contained in:
Dan Paulat 2024-05-18 11:08:48 -05:00
parent 2efdd1b046
commit 8f7076cd09
4 changed files with 126 additions and 0 deletions

View file

@ -0,0 +1,37 @@
#pragma once
#include <memory>
#include <QObject>
#include <QThread>
namespace scwx
{
namespace qt
{
namespace manager
{
class ThreadManager : public QObject
{
Q_OBJECT
Q_DISABLE_COPY_MOVE(ThreadManager)
public:
explicit ThreadManager();
~ThreadManager();
QThread* thread(const std::string& id, bool autoStart = true);
void StopThreads();
static ThreadManager& Instance();
private:
class Impl;
std::unique_ptr<Impl> p;
};
} // namespace manager
} // namespace qt
} // namespace scwx