CLOUD: Add DownloadRequest stub
It reads the passed NetworkReadStream and prints its contents onto console (for now). It would be writing contents into file. To simplify work with raw NetworkReadStream there is a new CurlRequest. It basically does nothing, but as ConnMan handles transfers only if there is an active Request, you need some Request to get NetworkReadStream working. Thus, there is a CurlRequest, which is active until NetworkReadStream is completely read. CurlRequest also has useful addHeader() and addPostField() methods in order to customize the request easily. Use execute() method to get its NetworkReadStream. DropboxStorage implements streamFile() and download() API methods. As DownloadRequest is incomplete, it is not actually downloading a file, though.
This commit is contained in:
parent
3582f6165c
commit
826a2a921c
14 changed files with 288 additions and 43 deletions
|
@ -23,21 +23,14 @@
|
|||
#ifndef BACKENDS_NETWORKING_CURL_CURLJSONREQUEST_H
|
||||
#define BACKENDS_NETWORKING_CURL_CURLJSONREQUEST_H
|
||||
|
||||
#include "backends/networking/curl/request.h"
|
||||
#include "backends/networking/curl/curlrequest.h"
|
||||
#include "common/memstream.h"
|
||||
#include "common/json.h"
|
||||
|
||||
struct curl_slist;
|
||||
|
||||
namespace Networking {
|
||||
|
||||
class NetworkReadStream;
|
||||
|
||||
class CurlJsonRequest : public Request {
|
||||
const char *_url;
|
||||
NetworkReadStream *_stream;
|
||||
curl_slist *_headersList;
|
||||
Common::String _postFields;
|
||||
class CurlJsonRequest: public CurlRequest {
|
||||
Common::MemoryWriteStreamDynamic _contentsStream;
|
||||
|
||||
/** Prepares raw bytes from _contentsStream to be parsed with Common::JSON::parse(). */
|
||||
|
@ -48,10 +41,6 @@ public:
|
|||
virtual ~CurlJsonRequest();
|
||||
|
||||
virtual bool handle();
|
||||
|
||||
void addHeader(Common::String header);
|
||||
|
||||
void addPostField(Common::String header);
|
||||
};
|
||||
|
||||
} //end of namespace Networking
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue