Add QNetworkRequestFactory::(set)?Priority
To enable setting a default priority for all requests to a given site. Fixes: QTBUG-121669 Change-Id: Icd8a9c59e4afb0432c65f84cc8115ae0c7f85506 Reviewed-by: Juha Vuolle <juha.vuolle@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
parent
27383285a1
commit
3b3b2024f9
@ -475,6 +475,37 @@ void QNetworkRequestFactory::clearQueryParameters()
|
|||||||
d->queryParameters.clear();
|
d->queryParameters.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.8
|
||||||
|
|
||||||
|
Sets the priority for any future requests created by this factory to
|
||||||
|
\a priority.
|
||||||
|
|
||||||
|
The default priority is \l QNetworkRequest::NormalPriority.
|
||||||
|
|
||||||
|
\sa priority(), QNetworkRequest::setPriority()
|
||||||
|
*/
|
||||||
|
void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)
|
||||||
|
{
|
||||||
|
if (d->priority == priority)
|
||||||
|
return;
|
||||||
|
d.detach();
|
||||||
|
d->priority = priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.8
|
||||||
|
|
||||||
|
Returns the priority assigned to any future requests created by this
|
||||||
|
factory.
|
||||||
|
|
||||||
|
\sa setPriority(), QNetworkRequest::priority()
|
||||||
|
*/
|
||||||
|
QNetworkRequest::Priority QNetworkRequestFactory::priority() const
|
||||||
|
{
|
||||||
|
return d->priority;
|
||||||
|
}
|
||||||
|
|
||||||
QNetworkRequestFactoryPrivate::QNetworkRequestFactoryPrivate()
|
QNetworkRequestFactoryPrivate::QNetworkRequestFactoryPrivate()
|
||||||
= default;
|
= default;
|
||||||
|
|
||||||
@ -507,6 +538,7 @@ QNetworkRequest QNetworkRequestFactoryPrivate::newRequest(const QUrl &url) const
|
|||||||
request.setRawHeader("Authorization"_ba, Bearer + bearerToken);
|
request.setRawHeader("Authorization"_ba, Bearer + bearerToken);
|
||||||
|
|
||||||
request.setTransferTimeout(transferTimeout);
|
request.setTransferTimeout(transferTimeout);
|
||||||
|
request.setPriority(priority);
|
||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +74,9 @@ public:
|
|||||||
Q_NETWORK_EXPORT void setQueryParameters(const QUrlQuery &query);
|
Q_NETWORK_EXPORT void setQueryParameters(const QUrlQuery &query);
|
||||||
Q_NETWORK_EXPORT void clearQueryParameters();
|
Q_NETWORK_EXPORT void clearQueryParameters();
|
||||||
|
|
||||||
|
Q_NETWORK_EXPORT void setPriority(QNetworkRequest::Priority priority);
|
||||||
|
Q_NETWORK_EXPORT QNetworkRequest::Priority priority() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifndef QT_NO_DEBUG_STREAM
|
#ifndef QT_NO_DEBUG_STREAM
|
||||||
friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkRequestFactory &reply);
|
friend Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkRequestFactory &reply);
|
||||||
|
@ -44,6 +44,7 @@ public:
|
|||||||
QString userName;
|
QString userName;
|
||||||
QString password;
|
QString password;
|
||||||
QUrlQuery queryParameters;
|
QUrlQuery queryParameters;
|
||||||
|
QNetworkRequest::Priority priority = QNetworkRequest::NormalPriority;
|
||||||
std::chrono::milliseconds transferTimeout{0};
|
std::chrono::milliseconds transferTimeout{0};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@ private Q_SLOTS:
|
|||||||
void operators();
|
void operators();
|
||||||
void timeout();
|
void timeout();
|
||||||
void userInfo();
|
void userInfo();
|
||||||
|
void priority();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const QUrl url1{u"http://foo.io"_s};
|
const QUrl url1{u"http://foo.io"_s};
|
||||||
@ -354,5 +355,18 @@ void tst_QNetworkRequestFactory::userInfo()
|
|||||||
QVERIFY(factory.password().isEmpty());
|
QVERIFY(factory.password().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QNetworkRequestFactory::priority()
|
||||||
|
{
|
||||||
|
QNetworkRequestFactory factory(u"http://example.com"_s);
|
||||||
|
QCOMPARE(factory.priority(), QNetworkRequest::NormalPriority);
|
||||||
|
auto request = factory.createRequest("/index.html");
|
||||||
|
QCOMPARE(request.priority(), QNetworkRequest::NormalPriority);
|
||||||
|
|
||||||
|
factory.setPriority(QNetworkRequest::HighPriority);
|
||||||
|
QCOMPARE(factory.priority(), QNetworkRequest::HighPriority);
|
||||||
|
request = factory.createRequest("/index.html");
|
||||||
|
QCOMPARE(request.priority(), QNetworkRequest::HighPriority);
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_MAIN(tst_QNetworkRequestFactory)
|
QTEST_MAIN(tst_QNetworkRequestFactory)
|
||||||
#include "tst_qnetworkrequestfactory.moc"
|
#include "tst_qnetworkrequestfactory.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user