aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/curl/curlrequest.h
diff options
context:
space:
mode:
authorAlexander Tkachev2019-11-03 02:16:00 +0700
committerEugene Sandulenko2019-11-05 01:47:00 +0100
commit99e21f4320d86d027c6fac1884310f4f86835d66 (patch)
tree80303453b0b802f5ad618a31e969204e170f3beb /backends/networking/curl/curlrequest.h
parentf7d9156967af8005543434c64430fdf06cab7033 (diff)
downloadscummvm-rg350-99e21f4320d86d027c6fac1884310f4f86835d66.tar.gz
scummvm-rg350-99e21f4320d86d027c6fac1884310f4f86835d66.tar.bz2
scummvm-rg350-99e21f4320d86d027c6fac1884310f4f86835d66.zip
NETWORKING: Enter Session
Session allows to reuse SessionRequests to the same host by making them keeping alive connection. Turns out, though, that libcurl already does that for us, and we didn't gain any speedup we thought we'd get. Usage: ``` Networking::Session s; Networking::SessionRequest *request = s.get(url); request->startAndWait(); warning("HTTP GET: %s", request->text()); s.close(); ``` You can still use SessionRequest without Session (but you can't put them on stack!): ``` Networking::SessionRequest *request = new Networking::SessionRequest(url); request->startAndWait(); warning("HTTP GET: %s", request->text()); request->close(); ```
Diffstat (limited to 'backends/networking/curl/curlrequest.h')
-rw-r--r--backends/networking/curl/curlrequest.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/backends/networking/curl/curlrequest.h b/backends/networking/curl/curlrequest.h
index f8d71c4828..9bca05c771 100644
--- a/backends/networking/curl/curlrequest.h
+++ b/backends/networking/curl/curlrequest.h
@@ -50,6 +50,8 @@ protected:
uint32 _bytesBufferSize;
bool _uploading; //using PUT method
bool _usingPatch; //using PATCH method
+ bool _keepAlive;
+ long _keepAliveIdle, _keepAliveInterval;
virtual NetworkReadStream *makeStream();
@@ -85,6 +87,10 @@ public:
/** Remembers to use PATCH method when it would create NetworkReadStream. */
virtual void usePatch();
+ /** Remembers to use Connection: keep-alive or close. */
+ virtual void connectionKeepAlive(long idle = 120, long interval = 60);
+ virtual void connectionClose();
+
/**
* Starts this Request with ConnMan.
* @return its NetworkReadStream in NetworkReadStreamResponse.