summaryrefslogtreecommitdiff
path: root/src/downloadmanagerproxy.h
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-10-11 21:17:34 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-10-11 21:17:34 +0200
commit3932371cd12ae7ec0812fbb2db3315448e18f1a8 (patch)
tree9751fce7edd8d6042f3f78bdfecedea520338b83 /src/downloadmanagerproxy.h
parent0363b73adb75714c94a7a7cea2840a9c40ee006e (diff)
Use proxy for ModList, PluginList and DownloadManager. Do not use registered callbacks when plugin is inactive.
Diffstat (limited to 'src/downloadmanagerproxy.h')
-rw-r--r--src/downloadmanagerproxy.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/downloadmanagerproxy.h b/src/downloadmanagerproxy.h
new file mode 100644
index 00000000..f41b60c6
--- /dev/null
+++ b/src/downloadmanagerproxy.h
@@ -0,0 +1,31 @@
+#ifndef DOWNLOADMANAGERPROXY_H
+#define DOWNLOADMANAGERPROXY_H
+
+#include <idownloadmanager.h>
+
+class OrganizerProxy;
+
+class DownloadManagerProxy : public MOBase::IDownloadManager
+{
+
+public:
+
+ DownloadManagerProxy(OrganizerProxy* oproxy, IDownloadManager* downloadManager);
+ virtual ~DownloadManagerProxy() { }
+
+ int startDownloadURLs(const QStringList& urls) override;
+ int startDownloadNexusFile(int modID, int fileID) override;
+ QString downloadPath(int id) override;
+
+ bool onDownloadComplete(const std::function<void(int)>& callback) override;
+ bool onDownloadPaused(const std::function<void(int)>& callback) override;
+ bool onDownloadFailed(const std::function<void(int)>& callback) override;
+ bool onDownloadRemoved(const std::function<void(int)>& callback) override;
+
+private:
+
+ OrganizerProxy* m_OrganizerProxy;
+ IDownloadManager* m_Proxied;
+};
+
+#endif // ORGANIZERPROXY_H