Files
GUI/src/device/DmsAsyncAction.h

49 lines
942 B
C++

#ifndef DMSASYNCACTION_H
#define DMSASYNCACTION_H
#include <QObject>
class QEventLoop;
class QTimer;
struct DmsAsyncActionResult
{
DmsAsyncActionResult(bool aIsSucessful = false, const QString& aData = "")
{
mIsSucessful = aIsSucessful;
mData = aData;
}
bool mIsSucessful;
QString mData;
};
class DmsAsyncAction : public QObject
{
Q_OBJECT
public:
DmsAsyncAction(int aServerId, int aActionId, QObject* aObject, const QString& aResponseSignal, QObject* aParent = nullptr);
~DmsAsyncAction();
bool execute();
void setSendData(const QString& aData);
void setTimeoutInterval(int aMsec);
void responsed();
signals:
void timeout();
private slots:
void sendTimeoutSignal();
private:
int mServerId;
int mActionId;
QTimer* mTimer;
QObject* mObject;
QString mResponseSignal;
QString mSendData;
bool mIsResponsed;
};
#endif // DMSASYNCACTION_H