#ifndef WSPRNET_H #define WSPRNET_H #include #include #include #include #include class QNetworkAccessManager; class QTimer; class QNetworkReply; class WSPRNet : public QObject { Q_OBJECT; public: explicit WSPRNet(QNetworkAccessManager *, QObject *parent = nullptr); void upload(QString const& call, QString const& grid, QString const& rfreq, QString const& tfreq, QString const& mode, QString const& tpct, QString const& dbm, QString const& version, QString const& fileName); static bool decodeLine(QString const& line, QHash &query); signals: void uploadStatus(QString); public slots: void networkReply(QNetworkReply *); void work(); void abortOutstandingRequests (); private: QNetworkAccessManager *networkManager; QList m_outstandingRequests; QString m_call, m_grid, m_rfreq, m_tfreq, m_mode, m_tpct, m_dbm, m_vers, m_file; QQueue urlQueue; QTimer *uploadTimer; int m_urlQueueSize; int m_uploadType; QString urlEncodeNoSpot(); QString urlEncodeSpot(QHash const& spot); }; #endif // WSPRNET_H