QGrpcClientBase Class

The QGrpcClientBase class is bridge between gRPC clients and channels. More...

Header: #include <QGrpcClientBase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
Since: Qt 6.5
Inherits: QObject

Public Functions

bool attachChannel(std::shared_ptr<QAbstractGrpcChannel> channel)
(since 6.7) std::shared_ptr<QAbstractGrpcChannel> channel() const

Signals

(since 6.7) void channelChanged()

Detailed Description

QGrpcClientBase provides a set of functions for client classes generated out of protobuf services. QGrpcClientBase enforces thread safety for startStream() and call() methods of generated clients. The methods QGrpcClientBase::call() and QGrpcClientBase::startStream() should only be called by the generated client classes.

Member Function Documentation

bool QGrpcClientBase::attachChannel(std::shared_ptr<QAbstractGrpcChannel> channel)

Attaches channel to client as transport layer for gRPC.

Parameters and return values will be serialized to the channel in a format it supports.

Note: Warning: Qt GRPC doesn't guarantee thread safety on the channel level. You have to invoke the channel-related functions on the same thread as QGrpcClientBase.

Note: Setter function for property channel.

[since 6.7] std::shared_ptr<QAbstractGrpcChannel> QGrpcClientBase::channel() const

Returns the channel attached to this client.

Note: Getter function for property channel.

This function was introduced in Qt 6.7.

[signal, since 6.7] void QGrpcClientBase::channelChanged()

Indicates that a new channel is attached to the client.

Note: Notifier signal for property channel.

This function was introduced in Qt 6.7.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.