#ifndef TCHTTPSERVICE_H #define TCHTTPSERVICE_H #define DEBUG 1 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "urldatabase.h" class TCHttpService : public QObject { Q_OBJECT private: public: static TCHttpService* getInstance(); void apiLogin(); #if 0 void apiMyfileCount(); void apiMyfileNormal(int start, int count); void apiMd5(const QString& filePath); #endif void apiUpload(const QString& filePath); void setConfiguration(QString userName, QString firstPwd, QString domain); void setSsl(bool enable); bool getOnlineState(); void setUploadNum(int nb); void downloadImage(const QString& requestId, const QUrl& imageUrl); private: QUrl encodeUrl(QString url, QMap params); void cleanOldCacheFiles(); bool getCachedImage(const QUrl& imageUrl, QPixmap& pixmap); QString getCacheFilePath(const QUrl& imageUrl); void cacheImage(const QUrl& imageUrl, const QPixmap& pixmap); signals: void signal_loginSuc(); void signal_shareSuc(); void signal_uploadFileSec(QString url); void requestFinished(QNetworkReply* reply, QString api); void signal_imageDownloaded(const QString& requestId, const QPixmap& pixmap); void signal_downloadFailed(const QString& requestId, const QString& error); void signal_progressUpdate(int); private: explicit TCHttpService(QObject *parent = nullptr); static QScopedPointer m_instance; QNetworkAccessManager m_manager; QString m_token; QString m_domain; QString m_firstPwd; QString m_userName; int m_memory_cache_size_kb = 10240; int m_disk_cache_size_mb = 100; int m_max_cache_days = 30; int m_total; bool m_enableSsl = true; bool m_isOnline = false; bool m_uploadNum = 0; QHash m_pendingRequests; private slots: void slot_downloadFinished(QNetworkReply* reply); }; #endif // TCHTTPSERVICE_H