Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
\inmodule QtNetwork More...
#include <qhttp2connection_p.h>
Public Types | |
enum class | CreateStreamError { MaxConcurrentStreamsReached , StreamIdsExhausted , ReceivedGOAWAY , UnknownError } |
enum class | PingState { Ping , PongSignatureIdentical , PongSignatureChanged , PongNoPingSent } |
Public Slots | |
bool | sendPing () |
bool | sendPing (QByteArrayView data) |
void | handleReadyRead () |
This function must be called when you have received a readyRead signal (or equivalent) from the QIODevice. | |
void | handleConnectionClosure () |
This function must be called when the socket has been disconnected, and will end all remaining streams with an error. | |
Public Slots inherited from QObject | |
void | deleteLater () |
\threadsafe | |
Signals | |
void | newIncomingStream (QHttp2Stream *stream) |
This signal is emitted when a new stream is received from the remote peer. | |
void | newPromisedStream (QHttp2Stream *stream) |
This signal is emitted when the remote peer has promised a new stream. | |
void | errorReceived () |
This signal is emitted when the connection has received an error. | |
void | connectionClosed () |
This signal is emitted when the connection has been closed. | |
void | settingsFrameReceived () |
This signal is emitted when the connection has received a SETTINGS frame. | |
void | pingFrameRecived (QHttp2Connection::PingState state) |
void | errorOccurred (Http2::Http2Error errorCode, const QString &errorString) |
This signal is emitted when the connection has encountered an error. | |
void | receivedGOAWAY (Http2::Http2Error errorCode, quint32 lastStreamID) |
This signal is emitted when the connection has received a GOAWAY frame. | |
void | receivedEND_STREAM (quint32 streamID) |
void | incomingStreamErrorOccured (CreateStreamError error) |
Signals inherited from QObject | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
~QHttp2Connection () | |
QH2Expected< QHttp2Stream *, CreateStreamError > | createStream () |
Creates a stream on this connection. | |
QHttp2Stream * | getStream (quint32 streamId) const |
Return a pointer to a stream with the given streamID, or null if no such stream exists or it was deleted. | |
QHttp2Stream * | promisedStream (const QUrl &streamKey) const |
Returns a pointer to the stream that was promised with the given streamKey, if any. | |
void | close () |
This sends a GOAWAY frame on the connection stream, gracefully closing the connection. | |
bool | isGoingAway () const noexcept |
Returns true if the connection is in the process of being closed, or false otherwise. | |
quint32 | maxConcurrentStreams () const noexcept |
Returns the maximum number of concurrent streams we are allowed to have active at any given time. | |
quint32 | peerMaxConcurrentStreams () const noexcept |
quint32 | maxHeaderListSize () const noexcept |
Returns the maximum size of the header which the peer is willing to accept. | |
bool | isUpgradedConnection () const noexcept |
Returns true if this connection was created as a result of an HTTP/1 upgrade to HTTP/2, or false otherwise. | |
Public Member Functions inherited from QObject | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
bool | moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL) |
Changes the thread affinity for this object and its children and returns true on success. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
void | killTimer (Qt::TimerId id) |
template<typename T > | |
T | findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
T | findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Static Public Member Functions | |
static QHttp2Connection * | createUpgradedConnection (QIODevice *socket, const QHttp2Configuration &config) |
Create a new HTTP2 connection given a config and a socket. | |
static QHttp2Connection * | createDirectConnection (QIODevice *socket, const QHttp2Configuration &config) |
Create a new HTTP2 connection given a config and a socket. | |
static QHttp2Connection * | createDirectServerConnection (QIODevice *socket, const QHttp2Configuration &config) |
Create a new HTTP2 connection given a config and a socket. | |
Static Public Member Functions inherited from QObject | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
Friends | |
class | QHttp2Stream |
Additional Inherited Members | |
Protected Member Functions inherited from QObject | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Protected Attributes inherited from QObject | |
QScopedPointer< QObjectData > | d_ptr |
Properties inherited from QObject | |
QString | objectName |
the name of this object | |
Related Symbols inherited from QObject | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
\inmodule QtNetwork
The QHttp2Connection class represents a HTTP/2 connection. It can only be created through the static functions createDirectConnection(), createUpgradedConnection(), and createDirectServerConnection().
createDirectServerConnection() is used for server-side connections, and has certain limitations that a client does not.
As a client you can create a QHttp2Stream with createStream().
Definition at line 206 of file qhttp2connection_p.h.
|
strong |
Enumerator | |
---|---|
MaxConcurrentStreamsReached | |
StreamIdsExhausted | |
ReceivedGOAWAY | |
UnknownError |
Definition at line 212 of file qhttp2connection_p.h.
|
strong |
Enumerator | |
---|---|
Ping | |
PongSignatureIdentical | |
PongSignatureChanged | |
PongNoPingSent |
Definition at line 220 of file qhttp2connection_p.h.
|
noexcept |
Definition at line 1017 of file qhttp2connection.cpp.
|
inline |
This sends a GOAWAY frame on the connection stream, gracefully closing the connection.
Definition at line 247 of file qhttp2connection_p.h.
|
signal |
This signal is emitted when the connection has been closed.
|
staticnodiscard |
Create a new HTTP2 connection given a config and a socket.
This function will immediately send the client preface.
The object returned will be a child to the socket, or null on failure.
Definition at line 841 of file qhttp2connection.cpp.
|
staticnodiscard |
Create a new HTTP2 connection given a config and a socket.
The object returned will be a child to the socket, or null on failure.
Definition at line 861 of file qhttp2connection.cpp.
|
nodiscard |
Creates a stream on this connection.
Automatically picks the next available stream ID and returns a pointer to the new stream, if possible. Otherwise returns an error.
Definition at line 883 of file qhttp2connection.cpp.
|
staticnodiscard |
Create a new HTTP2 connection given a config and a socket.
This function assumes that the Upgrade headers etc. in http/1 have already been sent and that the connection is already upgraded to http/2.
The object returned will be a child to the socket, or null on failure.
Definition at line 812 of file qhttp2connection.cpp.
|
signal |
This signal is emitted when the connection has encountered an error.
The errorCode parameter is the HTTP/2 error code, and the errorString parameter is a human-readable description of the error.
|
signal |
This signal is emitted when the connection has received an error.
QHttp2Stream * QHttp2Connection::getStream | ( | quint32 | streamId | ) | const |
Return a pointer to a stream with the given streamID, or null if no such stream exists or it was deleted.
Definition at line 958 of file qhttp2connection.cpp.
|
slot |
This function must be called when the socket has been disconnected, and will end all remaining streams with an error.
Definition at line 1202 of file qhttp2connection.cpp.
|
slot |
This function must be called when you have received a readyRead signal (or equivalent) from the QIODevice.
It will read and process any incoming HTTP/2 frames and emit signals as appropriate.
Definition at line 1078 of file qhttp2connection.cpp.
|
signal |
|
inlinenoexcept |
Returns true
if the connection is in the process of being closed, or false
otherwise.
Definition at line 249 of file qhttp2connection_p.h.
|
inlinenoexcept |
Returns true
if this connection was created as a result of an HTTP/1 upgrade to HTTP/2, or false
otherwise.
Definition at line 256 of file qhttp2connection_p.h.
|
inlinenoexcept |
Returns the maximum number of concurrent streams we are allowed to have active at any given time.
This is a directional setting, and the remote peer may have a different value.
Definition at line 251 of file qhttp2connection_p.h.
|
inlinenoexcept |
Returns the maximum size of the header which the peer is willing to accept.
Definition at line 254 of file qhttp2connection_p.h.
|
signal |
This signal is emitted when a new stream is received from the remote peer.
|
signal |
This signal is emitted when the remote peer has promised a new stream.
|
inlinenoexcept |
Definition at line 252 of file qhttp2connection_p.h.
|
signal |
|
inline |
Returns a pointer to the stream that was promised with the given streamKey, if any.
Otherwise, returns null.
Definition at line 240 of file qhttp2connection_p.h.
|
signal |
This signal is emitted when the connection has received a GOAWAY frame.
The errorCode parameter is the HTTP/2 error code, and the lastStreamID parameter is the last stream ID that the remote peer will process.
Any streams of a higher stream ID created by us will be ignored or reset.
|
slot |
Definition at line 1047 of file qhttp2connection.cpp.
|
slot |
Definition at line 1056 of file qhttp2connection.cpp.
|
signal |
This signal is emitted when the connection has received a SETTINGS frame.
|
friend |
Definition at line 277 of file qhttp2connection_p.h.