aboutsummaryrefslogtreecommitdiff
path: root/lib/connectiondata.h
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2019-08-20 20:09:09 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2019-08-20 21:14:12 +0900
commit59c4996a602e9eeae4e3bfc0210ff15f957df38f (patch)
tree82eee6137623bafbbe160844c5d9c57c4daf3621 /lib/connectiondata.h
parentad159b5206de615762e22f95e97ae61400f11761 (diff)
downloadlibquotient-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.h6
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;