- Qt 6.7
- Qt GRPC
- C++ Classes
- QtGrpc (Technical Preview)
- QAbstractGrpcClient
- Qt 6.7.2 Reference Documentation

# 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
Status: | Technical Preview

- List of all members, including inherited members

## Public Functions

void | attachChannel(const std::shared_ptr<QAbstractGrpcChannel> &channel)
`(since 6.7)` const std::shared_ptr<QAbstractGrpcChannel> & | channel()

## Signals

`(since 6.7)` void | channelChanged()
void | errorOccurred(const QGrpcStatus &status)

## Protected Functions

std::shared_ptr<StreamType> | startStream(QLatin1StringView method, const QProtobufMessage &arg, const QGrpcCallOptions &options)

## 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.

Note: Setter function for property channel.

### `[since 6.7]` const std::shared_ptr<QAbstractGrpcChannel> &QAbstractGrpcClient::channel()

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 QAbstractGrpcClient::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.

### `[signal]` void QAbstractGrpcClient::errorOccurred(const QGrpcStatus &status)

Indicates that an error occurred during serialization.

This signal is emitted when an error with status occurs in the channel or during serialization.

See also QGrpcOperation::errorOccurred.

### `[protected]` template <typename ParamType, typename StreamType> std::shared_ptr<StreamType> QAbstractGrpcClient::startStream(QLatin1StringView method, const QProtobufMessage &arg, const QGrpcCallOptions &options)

Starts the stream method of the StreamType type with the message argument arg to the attached channel.

Uses options argument to set additional parameter in the stream communication.

The implementation is only available for StreamType: QGrpcServerStream, QGrpcClientStream, and QGrpcBidirStream.