#ifndef BENCHMARKVIEWMODEL_H #define BENCHMARKVIEWMODEL_H #include class BenchmarkViewModel : public QObject { Q_OBJECT Q_PROPERTY(int itemsCount READ itemsCount WRITE setItemsCount NOTIFY itemsCountChanged) Q_PROPERTY(quint64 submitTime READ submitTime WRITE setSubmitTime NOTIFY submitTimeChanged) Q_PROPERTY(quint64 receiveTime READ receiveTime WRITE setReceiveTime NOTIFY receiveTimeChanged) Q_PROPERTY(quint64 removeTime READ removeTime WRITE setRemoveTime NOTIFY removeTimeChanged) Q_PROPERTY(bool inProgress READ inProgress WRITE setInProgress NOTIFY inProgressChanged) public: explicit BenchmarkViewModel(QObject *parent = nullptr); Q_INVOKABLE void startBenchmark(); int itemsCount() const; void setItemsCount(int newItemsCount); quint64 submitTime() const; void setSubmitTime(quint64 newSubmitTime); quint64 receiveTime() const; void setReceiveTime(quint64 newReceiveTime); quint64 removeTime() const; void setRemoveTime(quint64 newRemoveTime); bool inProgress() const; void setInProgress(bool newInProgress); signals: void itemsCountChanged(); void submitTimeChanged(); void receiveTimeChanged(); void removeTimeChanged(); void inProgressChanged(); private: void submitBenchmark(); void receiveAndDeleteBenchmark(); int m_itemsCount = 0; quint64 m_submitTime = 0; quint64 m_receiveTime = 0; quint64 m_removeTime = 0; bool m_inProgress = false; }; #endif // BENCHMARKVIEWMODEL_H