CLOUD: Make OneDriveStorage::download() work fine

Well, it takes two API calls instead of one now, but there are no
problems with expired token because of it.

This commit changes Storage::streamFile() to pass NetworkReadStream *
through callback.
This commit is contained in:
Alexander Tkachev 2016-05-27 01:09:10 +06:00
parent 24007c029b
commit 83b349a033
13 changed files with 77 additions and 36 deletions

View file

@ -30,7 +30,7 @@
namespace Networking {
CurlRequest::CurlRequest(DataCallback cb, const char *url):
CurlRequest::CurlRequest(DataCallback cb, Common::String url):
Request(cb), _url(url), _stream(0), _headersList(0) {}
CurlRequest::~CurlRequest() {
@ -38,7 +38,7 @@ CurlRequest::~CurlRequest() {
}
void CurlRequest::handle() {
if (!_stream) _stream = new NetworkReadStream(_url, _headersList, _postFields);
if (!_stream) _stream = new NetworkReadStream(_url.c_str(), _headersList, _postFields);
if (_stream && _stream->eos()) {
if (_stream->httpResponseCode() != 200)
@ -71,13 +71,13 @@ void CurlRequest::addPostField(Common::String keyValuePair) {
_postFields += "&" + keyValuePair;
}
NetworkReadStream *CurlRequest::execute() {
Cloud::Storage::RequestReadStreamPair CurlRequest::execute() {
if (!_stream) {
_stream = new NetworkReadStream(_url, _headersList, _postFields);
_stream = new NetworkReadStream(_url.c_str(), _headersList, _postFields);
ConnMan.addRequest(this);
}
return _stream;
return Cloud::Storage::RequestReadStreamPair(_id, _stream);
}
} //end of namespace Networking