QEverCloud 6.1.0
Unofficial Evernote Cloud API for Qt
RequestContext.h
Go to the documentation of this file.
1
8#ifndef QEVERCLOUD_REQUEST_CONTEXT_H
9#define QEVERCLOUD_REQUEST_CONTEXT_H
10
11#include "Export.h"
12
13#include <QDebug>
14#include <QList>
15#include <QNetworkCookie>
16#include <QTextStream>
17#include <QUuid>
18
19#include <memory>
20
21namespace qevercloud {
22
24
25static constexpr quint64 DEFAULT_REQUEST_TIMEOUT_MSEC = 10'000ull;
26
27static constexpr bool DEFAULT_REQUEST_TIMEOUT_EXPONENTIAL_INCREASE = true;
28
29static constexpr quint64 DEFAULT_MAX_REQUEST_TIMEOUT_MSEC = 600'000ull;
30
31static constexpr quint32 DEFAULT_MAX_REQUEST_RETRY_COUNT = 10;
32
34
40{
41public:
43 virtual QUuid requestId() const = 0;
44
46 virtual QString authenticationToken() const = 0;
47
49 virtual qint64 requestTimeout() const = 0;
50
52 virtual bool increaseRequestTimeoutExponentially() const = 0;
53
58 virtual qint64 maxRequestTimeout() const = 0;
59
61 virtual quint32 maxRequestRetryCount() const = 0;
62
64 virtual QList<QNetworkCookie> cookies() const = 0;
65
70 virtual IRequestContext * clone() const = 0;
71
72 virtual ~IRequestContext() = default;
73
74 friend QEVERCLOUD_EXPORT QTextStream & operator<<(
75 QTextStream & strm, const IRequestContext & ctx);
76
78 QDebug & dbg, const IRequestContext & ctx);
79};
80
81using IRequestContextPtr = std::shared_ptr<IRequestContext>;
82
84
86 QString authenticationToken = {},
87 qint64 requestTimeout = DEFAULT_REQUEST_TIMEOUT_MSEC,
88 bool increaseRequestTimeoutExponentially = DEFAULT_REQUEST_TIMEOUT_EXPONENTIAL_INCREASE,
89 qint64 maxRequestTimeout = DEFAULT_MAX_REQUEST_TIMEOUT_MSEC,
90 quint32 maxRequestRetryCount = DEFAULT_MAX_REQUEST_RETRY_COUNT,
91 QList<QNetworkCookie> cookies = {});
92
93} // namespace qevercloud
94
95#endif // QEVERCLOUD_REQUEST_CONTEXT_H
#define QEVERCLOUD_EXPORT
Definition: Export.h:19
Definition: RequestContext.h:40
virtual QString authenticationToken() const =0
virtual QList< QNetworkCookie > cookies() const =0
virtual quint32 maxRequestRetryCount() const =0
virtual ~IRequestContext()=default
friend QEVERCLOUD_EXPORT QTextStream & operator<<(QTextStream &strm, const IRequestContext &ctx)
virtual QUuid requestId() const =0
virtual qint64 requestTimeout() const =0
virtual qint64 maxRequestTimeout() const =0
friend QEVERCLOUD_EXPORT QDebug & operator<<(QDebug &dbg, const IRequestContext &ctx)
virtual bool increaseRequestTimeoutExponentially() const =0
virtual IRequestContext * clone() const =0
Definition: AsyncResult.h:21
QEVERCLOUD_EXPORT IRequestContextPtr newRequestContext(QString authenticationToken={}, qint64 requestTimeout=DEFAULT_REQUEST_TIMEOUT_MSEC, bool increaseRequestTimeoutExponentially=DEFAULT_REQUEST_TIMEOUT_EXPONENTIAL_INCREASE, qint64 maxRequestTimeout=DEFAULT_MAX_REQUEST_TIMEOUT_MSEC, quint32 maxRequestRetryCount=DEFAULT_MAX_REQUEST_RETRY_COUNT, QList< QNetworkCookie > cookies={})
std::shared_ptr< IRequestContext > IRequestContextPtr
Definition: RequestContext.h:81