summaryrefslogtreecommitdiff
path: root/downloadprovider.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
committerRusty Wagner <rusty@vector35.com>2018-08-28 17:19:32 -0400
commit20e06506a3d96c7327ca5d729ab01e8c2a7cff3c (patch)
tree65880063ccbdcb45cc247a0138915d8560d2ec27 /downloadprovider.cpp
parent5841af2db8e8dcf4e0da0c438ac040c5fa90038b (diff)
parent426bb3d8b47b93658bf969c429a8b98adae13c30 (diff)
Merge branch 'dev' into test_stack_adjust
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);