#ifndef DMSASYNCACTION_H #define DMSASYNCACTION_H #include 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