/** * Current Time for exercise * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2016-08-01 */ #include "exercise_time.h" #include "ppm_dts.h" #include #include namespace ParticipantManagement { ExerciseTime::ExerciseTime(const std::shared_ptr &partitionTime) : QObject(nullptr) , m_dtsPartitionTime(partitionTime) , m_exerciseTimer(new QTimer()) , m_thread(new QThread()) { m_exerciseTimer->moveToThread(m_thread); this->moveToThread(m_thread); m_exerciseTimer->setInterval(1000); connect(m_thread, &QThread::started, this, [this]() { m_exerciseTimer->start(1000); }); connect(m_exerciseTimer, &QTimer::timeout, this, &ExerciseTime::publishPartitionTime); connect(m_exerciseTimer, &QTimer::destroyed, m_thread, &QThread::deleteLater); m_thread->start(); //m_exerciseTimer->start(1000); } ExerciseTime::~ExerciseTime() { // m_exerciseTimer->moveToThread(this->thread()); m_exerciseTimer->deleteLater(); //m_thread->quit(); // m_exerciseTimer->stop(); } void ExerciseTime::publishPartitionTime() { const qint64 exerciseTime = QDateTime::currentMSecsSinceEpoch(); Core::PartitionTime currentTime(exerciseTime); m_dtsPartitionTime->write(currentTime); //m_exerciseTimer->start(); //qWarning() << "This is thread " << this->thread() << " send time"; } }