summaryrefslogtreecommitdiff
path: root/downloadprovider.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-08-29 15:26:00 -0400
committerPeter LaFosse <peter@vector35.com>2018-08-31 14:21:07 -0400
commitf0ccb75e7d80a6c0ae8b01d794b929f03bc6ea6d (patch)
tree7569fe7689062b265329ad0f649705aa8caab922 /downloadprovider.cpp
parenta6b801afadada75afd2b1779edee8d203f3b3140 (diff)
parent426bb3d8b47b93658bf969c429a8b98adae13c30 (diff)
Merging with dev
Diffstat (limited to 'downloadprovider.cpp')
-rw-r--r--downloadprovider.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/downloadprovider.cpp b/downloadprovider.cpp
index 0e3483df..8e56bbf5 100644
--- a/downloadprovider.cpp
+++ b/downloadprovider.cpp
@@ -10,6 +10,7 @@ DownloadInstance::DownloadInstance(DownloadProvider* provider)
cb.context = this;
cb.destroyInstance = DestroyInstanceCallback;
cb.performRequest = PerformRequestCallback;
+ AddRefForRegistration();
m_object = BNInitDownloadInstance(provider->GetObject(), &cb);
}
@@ -20,6 +21,12 @@ DownloadInstance::DownloadInstance(BNDownloadInstance* instance)
}
+DownloadInstance::~DownloadInstance()
+{
+ BNFreeDownloadInstance(m_object);
+}
+
+
void DownloadInstance::DestroyInstanceCallback(void* ctxt)
{
DownloadInstance* instance = (DownloadInstance*)ctxt;
@@ -34,12 +41,15 @@ int DownloadInstance::PerformRequestCallback(void* ctxt, const char* url)
}
-string DownloadInstance::GetError() const
+uint64_t DownloadInstance::WriteDataCallback(uint8_t* data, uint64_t len)
{
- char* str = BNGetErrorForDownloadInstance(m_object);
- string result = str;
- BNFreeString(str);
- return result;
+ return BNWriteDataForDownloadInstance(m_object, data, len);
+}
+
+
+bool DownloadInstance::NotifyProgressCallback(uint64_t progress, uint64_t total)
+{
+ return BNNotifyProgressForDownloadInstance(m_object, progress, total);
}
@@ -49,6 +59,15 @@ void DownloadInstance::SetError(const string& error)
}
+string DownloadInstance::GetError() const
+{
+ char* str = BNGetErrorForDownloadInstance(m_object);
+ string result = str;
+ BNFreeString(str);
+ return result;
+}
+
+
int DownloadInstance::PerformRequest(const string& url, BNDownloadInstanceOutputCallbacks* callbacks)
{
return BNPerformDownloadRequest(m_object, url.c_str(), callbacks);