#ifndef GRADESAPI_H #define GRADESAPI_H #include #include "requestthreadpool.h" namespace TC { class GradesUpdate : public QObject { Q_OBJECT public: struct Data { bool success; QString message; }; GradesUpdate(); GradesUpdate(const QString &answerFileName, const QString &checkinNumber, int endTime, const QString &examRoom, const QString &examSessions, const QString &examText, const QString &examineNumber, const QString &groupName, const QString &name, int onlineStatus, const QString &schoolAddress, const QString &schoolName, int sex, int startTime, int status, const QString &swId); // 同步版本 Data post(); // 异步版本 - 添加到线程池中执行 void postAsync(std::function callback = nullptr, int maxRetries = 3); QString url; QByteArray postData; }; // GradesUpdate 请求任务类 class GradesUpdateTask : public RequestTask { Q_OBJECT public: GradesUpdateTask(const QString &url, const QByteArray &postData, std::function callback = nullptr); void run() override; bool retry() override; private: QString m_url; QByteArray m_postData; std::function m_callback; }; } // namespace TC #endif // GRADESAPI_H