#pragma once #include #include #include class QJsonObject; class DeviceConnection; class RequestModel : public QAbstractTableModel { Q_OBJECT public: explicit RequestModel(QJsonObject &&msg, std::vector> &&devices, QObject *parent = nullptr); ~RequestModel() override; // QAbstractItemModel interface int rowCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override; QVariant data(const QModelIndex &index, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override; private slots: void responseReceived(const QString &requestId, const QJsonObject &msg); private: struct Request { std::shared_ptr device; QString requestId; enum class Status { Pending, Failed, Succeeded }; Status status{Status::Pending}; QString message; }; std::vector m_requests; };