Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qnetworkrequest_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QNETWORKREQUEST_P_H
6#define QNETWORKREQUEST_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists for the convenience
13// of the Network Access API. This header file may change from
14// version to version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <QtNetwork/private/qtnetworkglobal_p.h>
20#include <QtNetwork/qhttpheaders.h>
22#include "QtCore/qbytearray.h"
23#include "QtCore/qlist.h"
24#include "QtCore/qhash.h"
25#include "QtCore/qshareddata.h"
26#include "QtCore/qsharedpointer.h"
27#include "QtCore/qpointer.h"
28
29#include <utility>
30
31QT_BEGIN_NAMESPACE
32
33class QNetworkCookie;
34
35// this is the common part between QNetworkRequestPrivate, QNetworkReplyPrivate and QHttpPartPrivate
37{
38public:
43
44 mutable struct {
46 bool isCached = false;
47 } rawHeaderCache;
48
53
54 const RawHeadersList &allRawHeaders() const;
56 QByteArray rawHeader(QAnyStringView headerName) const;
57 void setRawHeader(const QByteArray &key, const QByteArray &value);
58 void setCookedHeader(QNetworkRequest::KnownHeaders header, const QVariant &value);
59
60 QHttpHeaders headers() const;
61 void setHeaders(const QHttpHeaders &newHeaders);
62 void setHeaders(QHttpHeaders &&newHeaders);
63 void setHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value);
64
65 void clearHeaders();
66
67 static QDateTime fromHttpDate(QByteArrayView value);
68 static QByteArray toHttpDate(const QDateTime &dt);
69
70 static std::optional<qint64> toInt(QByteArrayView value);
71
73 static QByteArray fromCookieList(const NetworkCookieList &cookies);
74 static std::optional<NetworkCookieList> toSetCookieList(const QList<QByteArray> &values);
75 static std::optional<NetworkCookieList> toCookieList(const QList<QByteArray> &values);
76
77 static RawHeadersList fromHttpToRaw(const QHttpHeaders &headers);
78 static QHttpHeaders fromRawToHttp(const RawHeadersList &raw);
79
80private:
81 void invalidateHeaderCache();
82
83 void setCookedFromHttp(const QHttpHeaders &newHeaders);
84 void parseAndSetHeader(QByteArrayView key, QByteArrayView value);
85 void parseAndSetHeader(QNetworkRequest::KnownHeaders key, QByteArrayView value);
86
87};
88
90
91QT_END_NAMESPACE
92
93
94#endif
The QAbstractNetworkCache class provides the interface for cache implementations.
\inmodule QtCore\reentrant
Definition qdatastream.h:50
static void save(QDataStream &out, const QNetworkCacheMetaData &metaData)
bool operator==(const QNetworkCacheMetaDataPrivate &other) const
static void load(QDataStream &in, QNetworkCacheMetaData &metaData)
The QNetworkCacheMetaData class provides cache information.
QByteArray rawHeader(QAnyStringView headerName) const
QHash< QNetworkRequest::Attribute, QVariant > AttributesMap
static std::optional< qint64 > toInt(QByteArrayView value)
static QHttpHeaders fromRawToHttp(const RawHeadersList &raw)
QList< QNetworkCookie > NetworkCookieList
static QByteArray fromCookieList(const NetworkCookieList &cookies)
void setCookedHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
QPointer< QObject > originatingObject
std::pair< QByteArray, QByteArray > RawHeaderPair
QList< QByteArray > rawHeadersKeys() const
static RawHeadersList fromHttpToRaw(const QHttpHeaders &headers)
static std::optional< NetworkCookieList > toCookieList(const QList< QByteArray > &values)
QHttpHeaders headers() const
void setHeaders(QHttpHeaders &&newHeaders)
static std::optional< NetworkCookieList > toSetCookieList(const QList< QByteArray > &values)
void setHeaders(const QHttpHeaders &newHeaders)
const RawHeadersList & allRawHeaders() const
void setRawHeader(const QByteArray &key, const QByteArray &value)
void setHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)
QList< RawHeaderPair > RawHeadersList
QHash< QNetworkRequest::KnownHeaders, QVariant > CookedHeadersMap
static QByteArray toHttpDate(const QDateTime &dt)
static QDateTime fromHttpDate(QByteArrayView value)
CookedHeadersMap cookedHeaders
Q_DECLARE_TYPEINFO(QObjectPrivate::ConnectionList, Q_RELOCATABLE_TYPE)