40 Q_DECLARE_PRIVATE(QNetworkAccessBackend);
43 enum class TargetType {
48 Q_DECLARE_FLAGS(TargetTypes, TargetType)
50 enum class SecurityFeature {
54 Q_ENUM(SecurityFeature)
55 Q_DECLARE_FLAGS(SecurityFeatures, SecurityFeature)
57 enum class IOFeature {
60 NeedResetableUpload = 0x2,
61 SupportsSynchronousMode = 0x4,
64 Q_DECLARE_FLAGS(IOFeatures, IOFeature)
66 QNetworkAccessBackend(TargetTypes targetTypes, SecurityFeatures securityFeatures,
67 IOFeatures ioFeatures);
68 QNetworkAccessBackend(TargetTypes targetTypes);
69 QNetworkAccessBackend(TargetTypes targetTypes, SecurityFeatures securityFeatures);
70 QNetworkAccessBackend(TargetTypes targetTypes, IOFeatures ioFeatures);
71 virtual ~QNetworkAccessBackend();
73 SecurityFeatures securityFeatures()
const noexcept;
74 TargetTypes targetTypes()
const noexcept;
75 IOFeatures ioFeatures()
const noexcept;
77 inline bool needsResetableUploadData()
const noexcept
79 return ioFeatures() & IOFeature::NeedResetableUpload;
83 virtual void open() = 0;
84 virtual void close() = 0;
86 virtual void setSslConfiguration(
const QSslConfiguration &configuration);
87 virtual QSslConfiguration sslConfiguration()
const;
89 virtual void ignoreSslErrors();
90 virtual void ignoreSslErrors(
const QList<QSslError> &errors);
91 virtual qint64 bytesAvailable()
const = 0;
92 virtual QByteArrayView readPointer();
93 virtual void advanceReadPointer(qint64 distance);
94 virtual qint64 read(
char *data, qint64 maxlen);
95 virtual bool wantToRead();
97#if QT_CONFIG(networkproxy)
98 QList<QNetworkProxy> proxyList()
const;
101 void setUrl(
const QUrl &url);
102 QVariant header(QNetworkRequest::KnownHeaders header)
const;
103 void setHeader(QNetworkRequest::KnownHeaders header,
const QVariant &value);
104 QByteArray rawHeader(
const QByteArray &header)
const;
105 void setRawHeader(
const QByteArray &header,
const QByteArray &value);
106 QHttpHeaders headers()
const;
107 void setHeaders(
const QHttpHeaders &newHeaders);
108 void setHeaders(QHttpHeaders &&newHeaders);
109 QNetworkAccessManager::Operation operation()
const;
111 bool isCachingEnabled()
const;
112 void setCachingEnabled(
bool canCache);
114 void setAttribute(QNetworkRequest::Attribute attribute,
const QVariant &value);
116 QIODevice *createUploadByteDevice();
117 QIODevice *uploadByteDevice();
119 QAbstractNetworkCache *networkCache()
const;
125 void error(QNetworkReply::NetworkError code,
const QString &errorString);
126#ifndef QT_NO_NETWORKPROXY
127 void proxyAuthenticationRequired(
const QNetworkProxy &proxy, QAuthenticator *auth);
129 void authenticationRequired(QAuthenticator *auth);
130 void metaDataChanged();
131 void redirectionRequested(
const QUrl &destination);
134 void setReplyPrivate(QNetworkReplyImplPrivate *reply);
135 void setManagerPrivate(QNetworkAccessManagerPrivate *manager);
136 bool isSynchronous()
const;
137 void setSynchronous(
bool synchronous);
139 friend class QNetworkAccessManager;
140 friend class QNetworkAccessManagerPrivate;
141 friend class QNetworkReplyImplPrivate;
148 QNetworkAccessBackendFactory();
149 virtual ~QNetworkAccessBackendFactory();
150 virtual QStringList supportedSchemes()
const = 0;
151 virtual QNetworkAccessBackend *create(QNetworkAccessManager::Operation op,
152 const QNetworkRequest &request)
const = 0;