##// END OF EJS Templates
Adds the ability to force an acquisition pending for an operation (1)...
Adds the ability to force an acquisition pending for an operation (1) Creates struct that contains operation properties: - its weight - the flag to force acquisition waiting

File last commit:

r1246:2785fa3e9772
r1249:b9a47ff1b9cc
Show More
SignalWaiter.cpp
36 lines | 641 B | text/x-c | CppLexer
#include "Common/SignalWaiter.h"
#include <QTimer>
namespace {
const auto DEFAULT_TIMEOUT = 30000;
} // namespace
SignalWaiter::SignalWaiter(QObject &sender, const char *signal) : m_Timeout{false}
{
connect(&sender, signal, &m_EventLoop, SLOT(quit()));
}
bool SignalWaiter::wait(int timeout)
{
if (timeout == 0) {
timeout = DEFAULT_TIMEOUT;
}
QTimer timer{};
timer.setInterval(timeout);
timer.start();
connect(&timer, &QTimer::timeout, this, &SignalWaiter::timeout);
m_EventLoop.exec();
return !m_Timeout;
}
void SignalWaiter::timeout()
{
m_Timeout = true;
m_EventLoop.quit();
}