aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud/downloadrequest.h
diff options
context:
space:
mode:
authorAlexander Tkachev2016-05-31 01:51:32 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commiteb63b50b7f0841e40365f3fbafa9810e8b190872 (patch)
tree4f348f12298c15e8a5885b5a74ce3788493b9a7e /backends/cloud/downloadrequest.h
parent001b417f33beeb3b2da11f58105b971dc7e6f600 (diff)
downloadscummvm-rg350-eb63b50b7f0841e40365f3fbafa9810e8b190872.tar.gz
scummvm-rg350-eb63b50b7f0841e40365f3fbafa9810e8b190872.tar.bz2
scummvm-rg350-eb63b50b7f0841e40365f3fbafa9810e8b190872.zip
CLOUD: Refactor Request
Added ErrorResponse and ErrorCallback. Each Request now has an ErrorCallback, which should be called instead of usual callback in case of failure.
Diffstat (limited to 'backends/cloud/downloadrequest.h')
-rw-r--r--backends/cloud/downloadrequest.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/backends/cloud/downloadrequest.h b/backends/cloud/downloadrequest.h
index 0bad5df279..9e3421d777 100644
--- a/backends/cloud/downloadrequest.h
+++ b/backends/cloud/downloadrequest.h
@@ -31,23 +31,24 @@
namespace Cloud {
class DownloadRequest: public Networking::Request {
- Storage::BoolCallback _boolCallback;
+ Storage::BoolCallback _boolCallback;
+ Common::DumpFile *_localFile;
+ Common::String _remoteFileName;
+ Storage *_storage;
Networking::NetworkReadStream *_remoteFileStream;
- Common::DumpFile *_localFile;
+ Request *_workingRequest;
+ bool _ignoreCallback;
- void streamCallback(Networking::NetworkReadStreamResponse pair);
-
- void finishBool(bool success);
+ void start();
+ void streamCallback(Networking::NetworkReadStreamResponse response);
+ void streamErrorCallback(Networking::ErrorResponse error);
+ void finishSuccess(bool success);
public:
- DownloadRequest(Storage *storage, Storage::BoolCallback callback, Common::String remoteFile, Common::DumpFile *dumpFile);
- virtual ~DownloadRequest() {
- delete _boolCallback;
- delete _localFile;
- }
+ DownloadRequest(Storage *storage, Storage::BoolCallback callback, Networking::ErrorCallback ecb, Common::String remoteFile, Common::DumpFile *dumpFile);
+ virtual ~DownloadRequest();
virtual void handle();
virtual void restart();
- virtual void finish();
};
} // End of namespace Cloud