diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-08-20 20:09:09 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-08-20 21:14:12 +0900 |
commit | 59c4996a602e9eeae4e3bfc0210ff15f957df38f (patch) | |
tree | 82eee6137623bafbbe160844c5d9c57c4daf3621 /lib/connectiondata.h | |
parent | ad159b5206de615762e22f95e97ae61400f11761 (diff) | |
download | libquotient-59c4996a602e9eeae4e3bfc0210ff15f957df38f.tar.gz libquotient-59c4996a602e9eeae4e3bfc0210ff15f957df38f.zip |
BaseJob/ConnectionData: connection-wide rate-limiting
As before, completely transparent for clients, driven by 529 errors from
the server (but cases of rate limiting are signalled by
BaseJob::rateLimited). That brings changes to BaseJob API: timeouts now
use int64_t and also can be handled in std::chrono terms; aboutToStart()
-> aboutToSendRequest(); started() -> sentRequest(). Closes #292.
Diffstat (limited to 'lib/connectiondata.h')
-rw-r--r-- | lib/connectiondata.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/connectiondata.h b/lib/connectiondata.h index 561893df..5cd7c3c7 100644 --- a/lib/connectiondata.h +++ b/lib/connectiondata.h @@ -21,15 +21,21 @@ #include <QtCore/QUrl> #include <memory> +#include <chrono> class QNetworkAccessManager; namespace Quotient { +class BaseJob; + class ConnectionData { public: explicit ConnectionData(QUrl baseUrl); virtual ~ConnectionData(); + void submit(BaseJob* job); + void limitRate(std::chrono::milliseconds nextCallAfter); + QByteArray accessToken() const; QUrl baseUrl() const; const QString& deviceId() const; |