From 2b9d2f32fbbc576c9367a24c0347e5870ff20117 Mon Sep 17 00:00:00 2001 From: Silarn Date: Mon, 11 Feb 2019 16:51:47 -0600 Subject: Endorsement and efficiency updates * Reduce update timeout to 5 minutes * Introduce bulk endorsement check replacing global mod info check * Fine tune performance of bulk update info query * Thread the update processing to prevent lockups --- src/nexusinterface.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/nexusinterface.h') diff --git a/src/nexusinterface.h b/src/nexusinterface.h index 06b19947..ac9e466b 100644 --- a/src/nexusinterface.h +++ b/src/nexusinterface.h @@ -104,6 +104,7 @@ public slots: void nxmFilesAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID); void nxmFileInfoAvailable(QString gameName, int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmDownloadURLsAvailable(QString gameName, int modID, int fileID, QVariant userData, QVariant resultData, int requestID); + void nxmEndorsementsAvailable(QVariant userData, QVariant resultData, int requestID); void nxmEndorsementToggled(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID); void nxmRequestFailed(QString gameName, int modID, int fileID, QVariant userData, int requestID, QNetworkReply::NetworkError error, const QString &errorMessage); @@ -298,6 +299,10 @@ public: **/ int requestDownloadURL(QString gameName, int modID, int fileID, QObject *receiver, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game); + + int requestEndorsementInfo(QObject *receiver, QVariant userData, const QString &subModule); + + /** * @param gameName the game short name to support multiple game sources * @brief toggle endorsement state of the mod @@ -401,6 +406,7 @@ signals: void nxmFilesAvailable(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID); void nxmFileInfoAvailable(QString gameName, int modID, int fileID, QVariant userData, QVariant resultData, int requestID); void nxmDownloadURLsAvailable(QString gameName, int modID, int fileID, QVariant userData, QVariant resultData, int requestID); + void nxmEndorsementsAvailable(QVariant userData, QVariant resultData, int requestID); void nxmEndorsementToggled(QString gameName, int modID, QVariant userData, QVariant resultData, int requestID); void nxmRequestFailed(QString gameName, int modID, int fileID, QVariant userData, int requestID, QNetworkReply::NetworkError error, const QString &errorString); void requestsChanged(int queueCount, std::tuple requestsRemaining); @@ -433,6 +439,7 @@ private: TYPE_FILES, TYPE_FILEINFO, TYPE_DOWNLOADURL, + TYPE_ENDORSEMENTS, TYPE_TOGGLEENDORSEMENT, TYPE_GETUPDATES, TYPE_CHECKUPDATES @@ -451,6 +458,7 @@ private: NXMRequestInfo(int modID, Type type, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game); NXMRequestInfo(int modID, QString modVersion, Type type, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game); NXMRequestInfo(int modID, int fileID, Type type, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game); + NXMRequestInfo(Type type, QVariant userData, const QString &subModule); NXMRequestInfo(UpdatePeriod period, Type type, QVariant userData, const QString &subModule, MOBase::IPluginGame const *game); private: @@ -464,7 +472,6 @@ private: NexusInterface(PluginContainer *pluginContainer); void nextRequest(); void requestFinished(std::list::iterator iter); - bool requiresLogin(const NXMRequestInfo &info); MOBase::IPluginGame *getGame(QString gameName) const; QString getOldModsURL(QString gameName) const; -- cgit v1.3.1