#ifndef PENDING_COMMAND_H #define PENDING_COMMAND_H #include "pb/commands.pb.h" #include "pb/response.pb.h" #include class PendingCommand : public QObject { Q_OBJECT signals: void finished(const Response &response, const CommandContainer &commandContainer, const QVariant &extraData); void finished(Response::ResponseCode respCode); private: CommandContainer commandContainer; QVariant extraData; int ticks; public: PendingCommand(const CommandContainer &_commandContainer, QVariant _extraData = QVariant()) : commandContainer(_commandContainer), extraData(_extraData), ticks(0) { } CommandContainer &getCommandContainer() { return commandContainer; } void setExtraData(const QVariant &_extraData) { extraData = _extraData; } QVariant getExtraData() const { return extraData; } void processResponse(const Response &response) { emit finished(response, commandContainer, extraData); emit finished(response.response_code()); } int tick() { return ++ticks; } }; #endif