Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qhttpsocketengine_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
4#ifndef QHTTPSOCKETENGINE_P_H
5#define QHTTPSOCKETENGINE_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtNetwork/private/qtnetworkglobal_p.h>
19
20#include <QtNetwork/qnetworkproxy.h>
21
22#include "qabstractsocket.h"
23#include "private/qauthenticator_p.h"
24#include "private/qabstractsocketengine_p.h"
25
27
29
30#if !defined(QT_NO_NETWORKPROXY)
31
32class QTcpSocket;
35
37{
39public:
40 enum HttpState {
46 ReadResponseHeader
47 };
50
52 bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) override;
53
54 void setProxy(const QNetworkProxy &networkProxy);
55
56 qintptr socketDescriptor() const override;
57
58 bool isValid() const override;
59
60 bool connectInternal();
61 bool connectToHost(const QHostAddress &address, quint16 port) override;
62 bool connectToHostByName(const QString &name, quint16 port) override;
63 bool bind(const QHostAddress &address, quint16 port) override;
64 bool listen(int backlog) override;
65 qintptr accept() override;
66 void close() override;
67
68 qint64 bytesAvailable() const override;
69
70 qint64 read(char *data, qint64 maxlen) override;
71 qint64 write(const char *data, qint64 len) override;
72
73#ifndef QT_NO_UDPSOCKET
74#ifndef QT_NO_NETWORKINTERFACE
75 bool joinMulticastGroup(const QHostAddress &groupAddress,
76 const QNetworkInterface &interface) override;
77 bool leaveMulticastGroup(const QHostAddress &groupAddress,
78 const QNetworkInterface &interface) override;
80 bool setMulticastInterface(const QNetworkInterface &iface) override;
81#endif // QT_NO_NETWORKINTERFACE
82
83 bool hasPendingDatagrams() const override;
84 qint64 pendingDatagramSize() const override;
85#endif // QT_NO_UDPSOCKET
86
88 PacketHeaderOptions) override;
89 qint64 writeDatagram(const char *data, qint64 len, const QIpPacketHeader &) override;
90 qint64 bytesToWrite() const override;
91
92 int option(SocketOption option) const override;
93 bool setOption(SocketOption option, int value) override;
94
95 bool waitForRead(int msecs = 30000, bool *timedOut = nullptr) override;
96 bool waitForWrite(int msecs = 30000, bool *timedOut = nullptr) override;
97 bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite,
98 bool checkRead, bool checkWrite,
99 int msecs = 30000, bool *timedOut = nullptr) override;
100
101 bool isReadNotificationEnabled() const override;
102 void setReadNotificationEnabled(bool enable) override;
103 bool isWriteNotificationEnabled() const override;
104 void setWriteNotificationEnabled(bool enable) override;
105 bool isExceptionNotificationEnabled() const override;
106 void setExceptionNotificationEnabled(bool enable) override;
107
108public slots:
109 void slotSocketConnected();
110 void slotSocketDisconnected();
111 void slotSocketReadNotification();
112 void slotSocketBytesWritten();
113 void slotSocketError(QAbstractSocket::SocketError error);
114 void slotSocketStateChanged(QAbstractSocket::SocketState state);
115
116private slots:
117 void emitPendingReadNotification();
118 void emitPendingWriteNotification();
119 void emitPendingConnectionNotification();
120
121private:
122 void emitReadNotification();
123 void emitWriteNotification();
124 void emitConnectionNotification();
125
126 bool readHttpHeader();
127
128 Q_DECLARE_PRIVATE(QHttpSocketEngine)
129 Q_DISABLE_COPY_MOVE(QHttpSocketEngine)
130
131};
132
133
135{
136 Q_DECLARE_PUBLIC(QHttpSocketEngine)
137public:
140
144 QHttpNetworkReply *reply; // only used for parsing the proxy response
155};
156
158{
159public:
161 const QNetworkProxy &, QObject *parent) override;
162 virtual QAbstractSocketEngine *createSocketEngine(qintptr socketDescripter, QObject *parent) override;
163};
164#endif
165
167
168#endif // QHTTPSOCKETENGINE_H
virtual bool leaveMulticastGroup(const QHostAddress &groupAddress, const QNetworkInterface &iface)=0
virtual bool setMulticastInterface(const QNetworkInterface &iface)=0
virtual bool joinMulticastGroup(const QHostAddress &groupAddress, const QNetworkInterface &iface)=0
virtual void setWriteNotificationEnabled(bool enable)=0
virtual bool bind(const QHostAddress &address, quint16 port)=0
virtual bool isValid() const =0
virtual bool isReadNotificationEnabled() const =0
virtual bool hasPendingDatagrams() const =0
virtual bool connectToHost(const QHostAddress &address, quint16 port)=0
virtual qintptr accept()=0
virtual qint64 readDatagram(char *data, qint64 maxlen, QIpPacketHeader *header=nullptr, PacketHeaderOptions=WantNone)=0
virtual qint64 read(char *data, qint64 maxlen)=0
virtual void setReadNotificationEnabled(bool enable)=0
static QAbstractSocketEngine * createSocketEngine(QAbstractSocket::SocketType socketType, const QNetworkProxy &, QObject *parent)
virtual bool setOption(SocketOption option, int value)=0
virtual qint64 write(const char *data, qint64 len)=0
virtual qint64 pendingDatagramSize() const =0
virtual qintptr socketDescriptor() const =0
virtual bool connectToHostByName(const QString &name, quint16 port)=0
virtual qint64 bytesAvailable() const =0
virtual qint64 bytesToWrite() const =0
virtual void setExceptionNotificationEnabled(bool enable)=0
virtual bool isWriteNotificationEnabled() const =0
virtual void close()=0
virtual bool waitForRead(int msecs=30000, bool *timedOut=nullptr)=0
virtual bool isExceptionNotificationEnabled() const =0
virtual bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite, bool checkRead, bool checkWrite, int msecs=30000, bool *timedOut=nullptr)=0
virtual qint64 writeDatagram(const char *data, qint64 len, const QIpPacketHeader &header)=0
virtual QNetworkInterface multicastInterface() const =0
SocketState
This enum describes the different states in which a socket can be.
static constexpr auto IPv4Protocol
SocketError
This enum describes the socket errors that can occur.
SocketType
This enum describes the transport layer protocol.
The QAuthenticator class provides an authentication object.
The QHostAddress class provides an IP address.
QHttpSocketEngine::HttpState state
The QNetworkInterface class provides a listing of the host's IP addresses and network interfaces.
The QNetworkProxy class provides a network layer proxy.
\inmodule QtCore
Definition qobject.h:90
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
The QTcpSocket class provides a TCP socket.
Definition qtcpsocket.h:18
else opt state
[0]
Combined button and popup list for selecting options.
static bool initialize()
Definition qctf.cpp:67
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char * interface
DBusConnection const char DBusError * error
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
EGLOutputPortEXT port
static QT_BEGIN_NAMESPACE const char * socketType(QSocketNotifier::Type type)
GLenum type
GLboolean enable
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint name
GLenum GLsizei len
GLuint GLuint64EXT address
GLuint GLenum option
#define Q_AUTOTEST_EXPORT
#define QT_REQUIRE_CONFIG(feature)
#define Q_OBJECT
#define slots
unsigned short quint16
Definition qtypes.h:43
unsigned int uint
Definition qtypes.h:29
long long qint64
Definition qtypes.h:55
ptrdiff_t qintptr
Definition qtypes.h:71
serverSocket setProxy(QNetworkProxy::NoProxy)
[0]
socketLayer waitForWrite()
socketLayer listen()
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent