HSTS policy - fix API
API-review follow-up: 1. make a ctor explicit 2. add swap member-function 3. make move-assignment inlined 4. make comparison operators non-members 5. make d_ptr QSharedDataPointer (and private implementation - QSharedData). Change-Id: I3257ca03cccd0f1254c9b95461752911359352a5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
parent
e6d23860f0
commit
14db1d5560
@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
\sa QNetworkAccessManager::setStrictTransportSecurityEnabled()
|
\sa QNetworkAccessManager::setStrictTransportSecurityEnabled()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class QHstsPolicyPrivate
|
class QHstsPolicyPrivate : public QSharedData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QUrl url;
|
QUrl url;
|
||||||
@ -77,6 +77,15 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Returns \c true if the two policies have the same host and expiration date
|
||||||
|
while agreeing on whether to include or exclude subdomains.
|
||||||
|
*/
|
||||||
|
bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs)
|
||||||
|
{
|
||||||
|
return *lhs.d == *rhs.d;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Constructs an invalid (expired) policy with empty host name and subdomains
|
Constructs an invalid (expired) policy with empty host name and subdomains
|
||||||
not included.
|
not included.
|
||||||
@ -121,17 +130,7 @@ QHstsPolicy::~QHstsPolicy()
|
|||||||
*/
|
*/
|
||||||
QHstsPolicy &QHstsPolicy::operator=(const QHstsPolicy &other)
|
QHstsPolicy &QHstsPolicy::operator=(const QHstsPolicy &other)
|
||||||
{
|
{
|
||||||
*d = *other.d;
|
d = other.d;
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Move-assignment operator.
|
|
||||||
*/
|
|
||||||
QHstsPolicy &QHstsPolicy::operator=(QHstsPolicy &&other) Q_DECL_NOTHROW
|
|
||||||
{
|
|
||||||
qSwap(d, other.d);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,15 +194,6 @@ bool QHstsPolicy::includesSubDomains() const
|
|||||||
return d->includeSubDomains;
|
return d->includeSubDomains;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns \c true if the two policies have the same host and expiration date
|
|
||||||
while agreeing on whether to include or exclude subdomains.
|
|
||||||
*/
|
|
||||||
bool QHstsPolicy::operator==(const QHstsPolicy &other) const
|
|
||||||
{
|
|
||||||
return *d == *other.d;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return \c true if this policy has a valid expiration date and this date
|
Return \c true if this policy has a valid expiration date and this date
|
||||||
is greater than QDateTime::currentGetDateTimeUtc().
|
is greater than QDateTime::currentGetDateTimeUtc().
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
#include <QtNetwork/qtnetworkglobal.h>
|
#include <QtNetwork/qtnetworkglobal.h>
|
||||||
|
|
||||||
#include <QtCore/qscopedpointer.h>
|
#include <QtCore/qshareddata.h>
|
||||||
#include <QtCore/qurl.h>
|
#include <QtCore/qurl.h>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -55,13 +55,15 @@ class Q_NETWORK_EXPORT QHstsPolicy
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
QHstsPolicy();
|
QHstsPolicy();
|
||||||
QHstsPolicy(const QDateTime &expiry, bool includeSubDomains, const QString &host,
|
explicit QHstsPolicy(const QDateTime &expiry, bool includeSubDomains, const QString &host,
|
||||||
QUrl::ParsingMode mode = QUrl::DecodedMode);
|
QUrl::ParsingMode mode = QUrl::DecodedMode);
|
||||||
QHstsPolicy(const QHstsPolicy &rhs);
|
QHstsPolicy(const QHstsPolicy &rhs);
|
||||||
QHstsPolicy &operator=(const QHstsPolicy &rhs);
|
QHstsPolicy &operator=(const QHstsPolicy &rhs);
|
||||||
QHstsPolicy &operator=(QHstsPolicy &&rhs) Q_DECL_NOTHROW;
|
QHstsPolicy &operator=(QHstsPolicy &&other) Q_DECL_NOTHROW { swap(other); return *this; }
|
||||||
~QHstsPolicy();
|
~QHstsPolicy();
|
||||||
|
|
||||||
|
void swap(QHstsPolicy &other) Q_DECL_NOTHROW { qSwap(d, other.d); }
|
||||||
|
|
||||||
void setHost(const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode);
|
void setHost(const QString &host, QUrl::ParsingMode mode = QUrl::DecodedMode);
|
||||||
QString host(QUrl::ComponentFormattingOptions options = QUrl::FullyDecoded) const;
|
QString host(QUrl::ComponentFormattingOptions options = QUrl::FullyDecoded) const;
|
||||||
void setExpiry(const QDateTime &expiry);
|
void setExpiry(const QDateTime &expiry);
|
||||||
@ -69,14 +71,25 @@ public:
|
|||||||
void setIncludesSubDomains(bool include);
|
void setIncludesSubDomains(bool include);
|
||||||
bool includesSubDomains() const;
|
bool includesSubDomains() const;
|
||||||
|
|
||||||
bool operator==(const QHstsPolicy &rhs) const;
|
|
||||||
bool isExpired() const;
|
bool isExpired() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QScopedPointer<QHstsPolicyPrivate> d;
|
QSharedDataPointer<QHstsPolicyPrivate> d;
|
||||||
|
|
||||||
|
friend Q_NETWORK_EXPORT bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_SHARED(QHstsPolicy)
|
||||||
|
|
||||||
|
Q_NETWORK_EXPORT bool operator==(const QHstsPolicy &lhs, const QHstsPolicy &rhs);
|
||||||
|
|
||||||
|
inline bool operator!=(const QHstsPolicy &lhs, const QHstsPolicy &rhs)
|
||||||
|
{
|
||||||
|
return !(lhs == rhs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
#endif // QHSTSPOLICY_H
|
#endif // QHSTSPOLICY_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user