5#ifndef QABSTRACTSOCKETENGINE_P_H
6#define QABSTRACTSOCKETENGINE_P_H
19#include <QtNetwork/private/qtnetworkglobal_p.h>
20#include "QtNetwork/qhostaddress.h"
21#include "QtNetwork/qabstractsocket.h"
22#include <QtCore/qdeadlinetimer.h>
23#include "private/qnetworkdatagram_p.h"
24#include "private/qobject_p.h"
30#ifndef QT_NO_NETWORKINTERFACE
43#ifndef QT_NO_NETWORKPROXY
82 WantDatagramSender = 0x01,
83 WantDatagramDestination = 0x02,
84 WantDatagramHopLimit = 0x04,
85 WantStreamNumber = 0x08,
86 WantEndOfRecord = 0x10,
96 virtual
qintptr socketDescriptor() const = 0;
98 virtual
bool isValid() const = 0;
105 virtual
void close() = 0;
107 virtual
qint64 bytesAvailable() const = 0;
112#ifndef QT_NO_UDPSOCKET
113#ifndef QT_NO_NETWORKINTERFACE
127 PacketHeaderOptions = WantNone) = 0;
135 bool *timedOut =
nullptr) = 0;
137 bool *timedOut =
nullptr) = 0;
139 bool checkRead,
bool checkWrite,
141 bool *timedOut =
nullptr) = 0;
153 int inboundStreamCount()
const;
154 int outboundStreamCount()
const;
164 void readNotification();
165 void writeNotification();
166 void closeNotification();
167 void exceptionNotification();
168 void connectionNotification();
169#ifndef QT_NO_NETWORKPROXY
QAbstractSocketEngineReceiver * receiver
QAbstractSocket::NetworkLayerProtocol socketProtocol
QHostAddress localAddress
QAbstractSocket::SocketState socketState
QAbstractSocketEnginePrivate()
QAbstractSocket::SocketError socketError
QString socketErrorString
QAbstractSocket::SocketType socketType
virtual void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)=0
virtual ~QAbstractSocketEngineReceiver()
virtual void writeNotification()=0
virtual void exceptionNotification()=0
virtual void connectionNotification()=0
virtual void closeNotification()=0
virtual void readNotification()=0
virtual bool leaveMulticastGroup(const QHostAddress &groupAddress, const QNetworkInterface &iface)=0
virtual bool waitForRead(QDeadlineTimer deadline=QDeadlineTimer{DefaultTimeout}, bool *timedOut=nullptr)=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 isReadNotificationEnabled() const =0
PacketHeaderOption
Specifies which fields in the IP packet header are desired in the call to readDatagram().
virtual bool hasPendingDatagrams() const =0
virtual bool waitForWrite(QDeadlineTimer deadline=QDeadlineTimer{DefaultTimeout}, bool *timedOut=nullptr)=0
virtual int option(SocketOption option) const =0
virtual qint64 readDatagram(char *data, qint64 maxlen, QIpPacketHeader *header=nullptr, PacketHeaderOptions=WantNone)=0
virtual void setReadNotificationEnabled(bool enable)=0
virtual bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite, bool checkRead, bool checkWrite, QDeadlineTimer deadline=QDeadlineTimer{DefaultTimeout}, bool *timedOut=nullptr)=0
virtual bool setOption(SocketOption option, int value)=0
@ MulticastLoopbackOption
@ NonBlockingSocketOption
@ ReceiveBufferSocketOption
@ ReceivePacketInformation
virtual qint64 pendingDatagramSize() const =0
virtual qint64 bytesToWrite() const =0
virtual void setExceptionNotificationEnabled(bool enable)=0
virtual bool isWriteNotificationEnabled() const =0
virtual bool isExceptionNotificationEnabled() const =0
virtual qint64 writeDatagram(const char *data, qint64 len, const QIpPacketHeader &header)=0
virtual QNetworkInterface multicastInterface() const =0
The QAbstractSocket class provides the base functionality common to all socket types.
SocketState
This enum describes the different states in which a socket can be.
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.
The QNetworkInterface class provides a listing of the host's IP addresses and network interfaces.
The QNetworkProxy class provides a network layer proxy.
virtual QAbstractSocketEngine * createSocketEngine(qintptr socketDescriptor, QObject *parent)=0
virtual QAbstractSocketEngine * createSocketEngine(QAbstractSocket::SocketType socketType, const QNetworkProxy &, QObject *parent)=0
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
static constexpr std::chrono::seconds DefaultTimeout
DBusConnection const char DBusError * error
static QString header(const QString &name)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static QT_BEGIN_NAMESPACE const char * socketType(QSocketNotifier::Type type)
#define Q_DECLARE_FLAGS(Flags, Enum)
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint GLuint64EXT address
static void setError(QJsonObject *response, const QString &msg)
#define Q_AUTOTEST_EXPORT
ReturnedValue read(const char *data)
gzip write("uncompressed data")
sock connectToHost(url.host(), url.port(80))
QDeadlineTimer deadline(30s)
socketLayer bind(QHostAddress::Any, 4000)
config setProtocol(QSsl::TlsV1_2)