forked from bruderstein/nppPluginManager
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDownloadManager.cpp
More file actions
70 lines (51 loc) · 1.69 KB
/
DownloadManager.cpp
File metadata and controls
70 lines (51 loc) · 1.69 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "precompiled_headers.h"
#include "libinstall/DownloadManager.h"
#include "InternetDownload.h"
#include "libinstall/WcharMbcsConverter.h"
#include "libinstall/ModuleInfo.h"
using namespace std;
tstring DownloadManager::_userAgent(_T("Plugin-Manager"));
DownloadManager::DownloadManager(CancelToken& cancelToken)
: m_cancelToken(cancelToken),
m_disableCache(FALSE)
{
_progressFunctionSet = FALSE;
}
DownloadManager::~DownloadManager(void)
{
}
void DownloadManager::setUserAgent(const TCHAR* userAgent)
{
_userAgent = userAgent;
}
void DownloadManager::setProgressFunction(std::function<void(int)> progressFunction)
{
_progressFunction = progressFunction;
_progressFunctionSet = TRUE;
}
void DownloadManager::disableCache() {
m_disableCache = TRUE;
}
BOOL DownloadManager::getUrl(CONST TCHAR *url, tstring& filename, tstring& contentType, const ModuleInfo *moduleInfo)
{
InternetDownload download(moduleInfo->getHParent(), _userAgent, url, m_cancelToken, _progressFunction);
if (m_disableCache) {
download.disableCache();
}
BOOL downloadSuccess = download.saveToFile(filename);
contentType.append(download.getContentType());
return downloadSuccess;
}
BOOL DownloadManager::getUrl(CONST TCHAR *url, string& result, const ModuleInfo *moduleInfo)
{
InternetDownload download(moduleInfo->getHParent(), _userAgent, url, m_cancelToken, _progressFunction);
if (m_disableCache) {
download.disableCache();
}
result.append( download.getContent());
return !result.empty();
}
void DownloadManager::cancelDownload()
{
m_cancelToken.triggerCancel();
}