diff options
| author | Rusty Wagner <rusty@vector35.com> | 2018-08-28 17:19:32 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2018-08-28 17:19:32 -0400 |
| commit | 20e06506a3d96c7327ca5d729ab01e8c2a7cff3c (patch) | |
| tree | 65880063ccbdcb45cc247a0138915d8560d2ec27 /downloadprovider.cpp | |
| parent | 5841af2db8e8dcf4e0da0c438ac040c5fa90038b (diff) | |
| parent | 426bb3d8b47b93658bf969c429a8b98adae13c30 (diff) | |
Merge branch 'dev' into test_stack_adjust
Diffstat (limited to 'downloadprovider.cpp')
| -rw-r--r-- | downloadprovider.cpp | 29 |
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); |
