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 
21 namespace qevercloud {
22 
24 
25 static constexpr quint64 DEFAULT_REQUEST_TIMEOUT_MSEC = 10'000ull;
26 
27 static constexpr bool DEFAULT_REQUEST_TIMEOUT_EXPONENTIAL_INCREASE = true;
28 
29 static constexpr quint64 DEFAULT_MAX_REQUEST_TIMEOUT_MSEC = 600'000ull;
30 
31 static constexpr quint32 DEFAULT_MAX_REQUEST_RETRY_COUNT = 10;
32 
34 
40 {
41 public:
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 
77  friend QEVERCLOUD_EXPORT QDebug & operator<<(
78  QDebug & dbg, const IRequestContext & ctx);
79 };
80 
81 using 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
Export.h
qevercloud::IRequestContext::maxRequestRetryCount
virtual quint32 maxRequestRetryCount() const =0
qevercloud::IRequestContext::operator<<
friend QEVERCLOUD_EXPORT QTextStream & operator<<(QTextStream &strm, const IRequestContext &ctx)
qevercloud::IRequestContext::clone
virtual IRequestContext * clone() const =0
qevercloud
Definition: AsyncResult.h:21
qevercloud::IRequestContext::requestId
virtual QUuid requestId() const =0
qevercloud::IRequestContext::authenticationToken
virtual QString authenticationToken() const =0
qevercloud::IRequestContext::maxRequestTimeout
virtual qint64 maxRequestTimeout() const =0
qevercloud::IRequestContext::~IRequestContext
virtual ~IRequestContext()=default
qevercloud::IRequestContext::operator<<
friend QEVERCLOUD_EXPORT QDebug & operator<<(QDebug &dbg, const IRequestContext &ctx)
qevercloud::IRequestContext
Definition: RequestContext.h:40
qevercloud::IRequestContext::increaseRequestTimeoutExponentially
virtual bool increaseRequestTimeoutExponentially() const =0
qevercloud::IRequestContextPtr
std::shared_ptr< IRequestContext > IRequestContextPtr
Definition: RequestContext.h:81
QEVERCLOUD_EXPORT
#define QEVERCLOUD_EXPORT
Definition: Export.h:19
qevercloud::IRequestContext::requestTimeout
virtual qint64 requestTimeout() const =0
qevercloud::newRequestContext
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={})
qevercloud::IRequestContext::cookies
virtual QList< QNetworkCookie > cookies() const =0