summaryrefslogtreecommitdiff
path: root/src/downloadmanagerproxy.h
blob: 236921798e0769b7f836f82554c965d4068cc2f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef DOWNLOADMANAGERPROXY_H
#define DOWNLOADMANAGERPROXY_H

#include <idownloadmanager.h>
#include "downloadmanager.h"

class OrganizerProxy;

class DownloadManagerProxy : public MOBase::IDownloadManager
{

public:

  DownloadManagerProxy(OrganizerProxy* oproxy, DownloadManager* 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;
  DownloadManager* m_Proxied;

  DownloadManager::SignalDownloadCallback m_DownloadComplete;
  DownloadManager::SignalDownloadCallback m_DownloadPaused;
  DownloadManager::SignalDownloadCallback m_DownloadFailed;
  DownloadManager::SignalDownloadCallback m_DownloadRemoved;

  std::vector<boost::signals2::connection> m_Connections;
};

#endif // ORGANIZERPROXY_H