##// END OF EJS Templates
Wait for the end of an acquisition to validate an operation (2)...
Wait for the end of an acquisition to validate an operation (2) Creates signal in VariableController emitted when there is no pending acquisition

File last commit:

r1246:2785fa3e9772
r1247:feac825a443e
Show More
SignalWaiter.h
38 lines | 1010 B | text/x-c | CLexer
#ifndef SCIQLOP_SIGNALWAITER_H
#define SCIQLOP_SIGNALWAITER_H
#include "CoreGlobal.h"
#include <QEventLoop>
/**
* Class for synchronously waiting for the reception of a signal. The signal to wait is passed to
* the construction of the object. When starting the wait, a timeout can be set to exit if the
* signal has not been sent
*/
class SCIQLOP_CORE_EXPORT SignalWaiter : public QObject {
Q_OBJECT
public:
/**
* Ctor
* @param object the sender of the signal
* @param signal the signal to listen
*/
explicit SignalWaiter(QObject &sender, const char *signal);
/**
* Starts the signal and leaves after the signal has been received, or after the timeout
* @param timeout the timeout set (if 0, uses a default timeout)
* @return true if the signal was sent, false if the timeout occured
*/
bool wait(int timeout);
private:
bool m_Timeout;
QEventLoop m_EventLoop;
private slots:
void timeout();
};
#endif // SCIQLOP_SIGNALWAITER_H