QAbstractGrpcClient Class

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

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

Public Functions

void attachChannel(const std::shared_ptr<QAbstractGrpcChannel> &channel)

Protected Functions

QGrpcStatus call(QLatin1StringView method, const QProtobufMessage &arg, ReturnType *ret)
std::shared_ptr<QGrpcCallReply> call(QLatin1StringView method, const QProtobufMessage &arg)
std::shared_ptr<QGrpcStream> startStream(QLatin1StringView method, const QProtobufMessage &arg)
std::shared_ptr<QGrpcStream> startStream(QLatin1StringView method, const QProtobufMessage &arg, const QWeakPointer<ReturnType> ret)

Detailed Description

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

Member Function Documentation

void QAbstractGrpcClient::attachChannel(const 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 QAbstractGrpcClient.

[protected] template <typename ParamType, typename ReturnType> QGrpcStatus QAbstractGrpcClient::call(QLatin1StringView method, const QProtobufMessage &arg, ReturnType *ret)

Synchronously calls the given method of this service client, with argument arg and fills ret with gRPC reply.

[protected] template <typename ParamType> std::shared_ptr<QGrpcCallReply> QAbstractGrpcClient::call(QLatin1StringView method, const QProtobufMessage &arg)

Synchronously calls the given method of this service client, with argument arg.

[protected] template <typename ParamType> std::shared_ptr<QGrpcStream> QAbstractGrpcClient::startStream(QLatin1StringView method, const QProtobufMessage &arg)

Streams messages from the server stream method with the message argument arg to the attached channel.

[protected] template <typename ParamType, typename ReturnType> std::shared_ptr<QGrpcStream> QAbstractGrpcClient::startStream(QLatin1StringView method, const QProtobufMessage &arg, const QWeakPointer<ReturnType> ret)

Streams messages from the server stream method with the message argument arg to the attached channel.

Makes ret argument point to allocated return-message structure. The return-message structure will be updated each time a message is received from the server-stream.

Note: If ret is used as property-fields in other object, property NOTIFY signal won't be called in case of updated message received from server-stream.