QGrpc{Channel, Call}Options: prefer 'set~()' over 'with~()'

It was concluded that we will use the 'set~()' syntax in our options but
still return a reference to allow chaining.

Task-number: QTBUG-123625
Change-Id: I00838465b485d096b4b7bd3d691d24385543d662
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
Dennis Oberst 2024-05-22 12:49:51 +02:00
parent 3551335272
commit 584a971d35
13 changed files with 76 additions and 74 deletions

View File

@ -50,7 +50,7 @@ void SimpleChatEngine::login(const QString &name, const QString &password)
{ "user-name", { name.toUtf8() } }, { "user-name", { name.toUtf8() } },
{ "user-password", { password.toUtf8() } }, { "user-password", { password.toUtf8() } },
}; };
channelOptions.withMetadata(metadata); channelOptions.setMetadata(metadata);
std::shared_ptr<QAbstractGrpcChannel> channel = std::make_shared<QGrpcHttp2Channel>( std::shared_ptr<QAbstractGrpcChannel> channel = std::make_shared<QGrpcHttp2Channel>(
channelOptions); channelOptions);
// ![0] // ![0]

View File

@ -65,7 +65,7 @@ QGrpcCallOptions &QGrpcCallOptions::operator=(QGrpcCallOptions &&other) noexcept
/*! /*!
Sets deadline value with \a deadline and returns updated QGrpcCallOptions object. Sets deadline value with \a deadline and returns updated QGrpcCallOptions object.
*/ */
QGrpcCallOptions &QGrpcCallOptions::withDeadline(QGrpcDuration deadline) QGrpcCallOptions &QGrpcCallOptions::setDeadline(QGrpcDuration deadline)
{ {
dPtr->deadline = deadline; dPtr->deadline = deadline;
return *this; return *this;
@ -77,7 +77,7 @@ QGrpcCallOptions &QGrpcCallOptions::withDeadline(QGrpcDuration deadline)
For HTTP2-based channels, \a metadata is converted into HTTP/2 headers, that For HTTP2-based channels, \a metadata is converted into HTTP/2 headers, that
added to the corresponding HTTP/2 request. added to the corresponding HTTP/2 request.
*/ */
QGrpcCallOptions &QGrpcCallOptions::withMetadata(const QGrpcMetadata &metadata) QGrpcCallOptions &QGrpcCallOptions::setMetadata(const QGrpcMetadata &metadata)
{ {
dPtr->metadata = metadata; dPtr->metadata = metadata;
return *this; return *this;
@ -86,9 +86,9 @@ QGrpcCallOptions &QGrpcCallOptions::withMetadata(const QGrpcMetadata &metadata)
/*! /*!
Sets \a metadata for a call and returns updated QGrpcCallOptions object. Sets \a metadata for a call and returns updated QGrpcCallOptions object.
\sa withMetadata() \sa setMetadata()
*/ */
QGrpcCallOptions &QGrpcCallOptions::withMetadata(QGrpcMetadata &&metadata) noexcept QGrpcCallOptions &QGrpcCallOptions::setMetadata(QGrpcMetadata &&metadata) noexcept
{ {
dPtr->metadata = std::move(metadata); dPtr->metadata = std::move(metadata);
return *this; return *this;

View File

@ -26,9 +26,9 @@ public:
Q_GRPC_EXPORT QGrpcCallOptions(QGrpcCallOptions &&other) noexcept; Q_GRPC_EXPORT QGrpcCallOptions(QGrpcCallOptions &&other) noexcept;
Q_GRPC_EXPORT QGrpcCallOptions &operator=(QGrpcCallOptions &&other) noexcept; Q_GRPC_EXPORT QGrpcCallOptions &operator=(QGrpcCallOptions &&other) noexcept;
Q_GRPC_EXPORT QGrpcCallOptions &withDeadline(QGrpcDuration deadline); Q_GRPC_EXPORT QGrpcCallOptions &setDeadline(QGrpcDuration deadline);
Q_GRPC_EXPORT QGrpcCallOptions &withMetadata(const QGrpcMetadata &metadata); Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(const QGrpcMetadata &metadata);
Q_GRPC_EXPORT QGrpcCallOptions &withMetadata(QGrpcMetadata &&metadata) noexcept; Q_GRPC_EXPORT QGrpcCallOptions &setMetadata(QGrpcMetadata &&metadata) noexcept;
[[nodiscard]] Q_GRPC_EXPORT std::optional<QGrpcDuration> deadline() const noexcept; [[nodiscard]] Q_GRPC_EXPORT std::optional<QGrpcDuration> deadline() const noexcept;
[[nodiscard]] Q_GRPC_EXPORT const QGrpcMetadata &metadata() const & noexcept; [[nodiscard]] Q_GRPC_EXPORT const QGrpcMetadata &metadata() const & noexcept;

View File

@ -84,7 +84,7 @@ QGrpcChannelOptions::~QGrpcChannelOptions() = default;
/*! /*!
Sets host value with \a host and returns updated QGrpcChannelOptions object. Sets host value with \a host and returns updated QGrpcChannelOptions object.
*/ */
QGrpcChannelOptions &QGrpcChannelOptions::withHost(const QUrl &host) QGrpcChannelOptions &QGrpcChannelOptions::setHost(const QUrl &host)
{ {
dPtr->host = host; dPtr->host = host;
return *this; return *this;
@ -93,7 +93,7 @@ QGrpcChannelOptions &QGrpcChannelOptions::withHost(const QUrl &host)
/*! /*!
Sets deadline value with \a deadline and returns updated QGrpcChannelOptions object. Sets deadline value with \a deadline and returns updated QGrpcChannelOptions object.
*/ */
QGrpcChannelOptions &QGrpcChannelOptions::withDeadline(QGrpcDuration deadline) QGrpcChannelOptions &QGrpcChannelOptions::setDeadline(QGrpcDuration deadline)
{ {
dPtr->deadline = deadline; dPtr->deadline = deadline;
return *this; return *this;
@ -105,7 +105,7 @@ QGrpcChannelOptions &QGrpcChannelOptions::withDeadline(QGrpcDuration deadline)
For HTTP2-based channels, \a metadata is converted into HTTP/2 headers, that For HTTP2-based channels, \a metadata is converted into HTTP/2 headers, that
added to each HTTP/2 request. added to each HTTP/2 request.
*/ */
QGrpcChannelOptions &QGrpcChannelOptions::withMetadata(const QGrpcMetadata &metadata) QGrpcChannelOptions &QGrpcChannelOptions::setMetadata(const QGrpcMetadata &metadata)
{ {
dPtr->metadata = metadata; dPtr->metadata = metadata;
return *this; return *this;
@ -120,7 +120,7 @@ QGrpcChannelOptions &QGrpcChannelOptions::withMetadata(const QGrpcMetadata &meta
implementations. implementations.
*/ */
QGrpcChannelOptions & QGrpcChannelOptions &
QGrpcChannelOptions::withSerializationFormat(const QGrpcSerializationFormat &format) QGrpcChannelOptions::setSerializationFormat(const QGrpcSerializationFormat &format)
{ {
dPtr->serializationFormat = format; dPtr->serializationFormat = format;
return *this; return *this;

View File

@ -31,10 +31,10 @@ public:
QGrpcChannelOptions(QGrpcChannelOptions &&other) noexcept; QGrpcChannelOptions(QGrpcChannelOptions &&other) noexcept;
QGrpcChannelOptions &operator=(QGrpcChannelOptions &&other) noexcept; QGrpcChannelOptions &operator=(QGrpcChannelOptions &&other) noexcept;
QGrpcChannelOptions &withHost(const QUrl &host); QGrpcChannelOptions &setHost(const QUrl &host);
QGrpcChannelOptions &withDeadline(QGrpcDuration deadline); QGrpcChannelOptions &setDeadline(QGrpcDuration deadline);
QGrpcChannelOptions &withMetadata(const QGrpcMetadata &metadata); QGrpcChannelOptions &setMetadata(const QGrpcMetadata &metadata);
QGrpcChannelOptions &withSerializationFormat(const QGrpcSerializationFormat &format); QGrpcChannelOptions &setSerializationFormat(const QGrpcSerializationFormat &format);
[[nodiscard]] QUrl host() const noexcept; [[nodiscard]] QUrl host() const noexcept;
[[nodiscard]] std::optional<QGrpcDuration> deadline() const noexcept; [[nodiscard]] std::optional<QGrpcDuration> deadline() const noexcept;

View File

@ -61,7 +61,7 @@ using namespace Qt::StringLiterals;
\code \code
auto channelJson = std::make_shared< auto channelJson = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) } QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) }
.withMetadata({ { "content-type"_ba, .setMetadata({ { "content-type"_ba,
"application/grpc+json"_ba } })); "application/grpc+json"_ba } }));
\endcode \endcode
@ -73,7 +73,7 @@ using namespace Qt::StringLiterals;
}; };
auto channel = std::make_shared< auto channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) } QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) }
.withSerializationFormat(QGrpcSerializationFormat{ "dummy", .setSerializationFormat(QGrpcSerializationFormat{ "dummy",
std::make_shared<DummySerializer>() })); std::make_shared<DummySerializer>() }));
\endcode \endcode
@ -593,15 +593,15 @@ QGrpcHttp2ChannelPrivate::QGrpcHttp2ChannelPrivate(const QGrpcChannelOptions &op
if (it != channelOptions.metadata().end()) { if (it != channelOptions.metadata().end()) {
if (formatSuffix.isEmpty() && it->second != DefaultContentType) { if (formatSuffix.isEmpty() && it->second != DefaultContentType) {
if (it->second == "application/grpc+json") { if (it->second == "application/grpc+json") {
channelOptions.withSerializationFormat(QGrpcSerializationFormat{ channelOptions.setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Json }); QGrpcSerializationFormat::Format::Json });
} else if (it->second == "application/grpc+proto" || it->second == DefaultContentType) { } else if (it->second == "application/grpc+proto" || it->second == DefaultContentType) {
channelOptions.withSerializationFormat(QGrpcSerializationFormat{ channelOptions.setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Protobuf }); QGrpcSerializationFormat::Format::Protobuf });
} else { } else {
qGrpcWarning() << "Cannot choose the serializer for " << ContentTypeHeader qGrpcWarning() << "Cannot choose the serializer for " << ContentTypeHeader
<< it->second << ". Using protobuf format as the default one."; << it->second << ". Using protobuf format as the default one.";
channelOptions.withSerializationFormat(QGrpcSerializationFormat{ channelOptions.setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Default }); QGrpcSerializationFormat::Format::Default });
} }
} else if (it->second != contentTypeFromOptions) { } else if (it->second != contentTypeFromOptions) {

View File

@ -24,7 +24,7 @@ qint64 QQmlGrpcCallOptions::deadline() const
void QQmlGrpcCallOptions::setDeadline(qint64 value) void QQmlGrpcCallOptions::setDeadline(qint64 value)
{ {
QGrpcDuration ms(value); QGrpcDuration ms(value);
m_options.withDeadline(ms); m_options.setDeadline(ms);
emit deadlineChanged(); emit deadlineChanged();
} }
@ -43,9 +43,9 @@ void QQmlGrpcCallOptions::setMetadata(QQmlGrpcMetadata *value)
if (m_metadata != value) { if (m_metadata != value) {
m_metadata = value; m_metadata = value;
if (m_metadata) if (m_metadata)
m_options.withMetadata(m_metadata->metadata()); m_options.setMetadata(m_metadata->metadata());
else else
m_options.withMetadata(QGrpcMetadata()); m_options.setMetadata(QGrpcMetadata());
emit metadataChanged(); emit metadataChanged();
} }
} }

View File

@ -41,7 +41,7 @@ QUrl QQmlGrpcChannelOptions::host() const
void QQmlGrpcChannelOptions::setHost(const QUrl &newUrl) void QQmlGrpcChannelOptions::setHost(const QUrl &newUrl)
{ {
Q_D(QQmlGrpcChannelOptions); Q_D(QQmlGrpcChannelOptions);
d->m_options.withHost(newUrl); d->m_options.setHost(newUrl);
emit hostChanged(); emit hostChanged();
} }
@ -56,7 +56,7 @@ void QQmlGrpcChannelOptions::setDeadline(qint64 value)
{ {
Q_D(QQmlGrpcChannelOptions); Q_D(QQmlGrpcChannelOptions);
QGrpcDuration ms(value); QGrpcDuration ms(value);
d->m_options.withDeadline(ms); d->m_options.setDeadline(ms);
emit deadlineChanged(); emit deadlineChanged();
} }
@ -76,9 +76,9 @@ void QQmlGrpcChannelOptions::setMetadata(QQmlGrpcMetadata *value)
if (d->m_metadata != value) { if (d->m_metadata != value) {
d->m_metadata = value; d->m_metadata = value;
if (d->m_metadata) if (d->m_metadata)
d->m_options.withMetadata(d->m_metadata->metadata()); d->m_options.setMetadata(d->m_metadata->metadata());
else else
d->m_options.withMetadata(QGrpcMetadata()); d->m_options.setMetadata(QGrpcMetadata());
emit metadataChanged(); emit metadataChanged();
} }
} }
@ -94,7 +94,7 @@ void QQmlGrpcChannelOptions::setSerializationFormat(QQmlSerializationFormat::Grp
Q_D(QQmlGrpcChannelOptions); Q_D(QQmlGrpcChannelOptions);
if (d->m_format != format) { if (d->m_format != format) {
d->m_format = format; d->m_format = format;
d->m_options.withSerializationFormat(QGrpcSerializationFormat{ d->m_options.setSerializationFormat(QGrpcSerializationFormat{
static_cast<QGrpcSerializationFormat::Format>(format) }); static_cast<QGrpcSerializationFormat::Format>(format) });
emit serializationFormatChanged(); emit serializationFormatChanged();
} }

View File

@ -44,7 +44,7 @@ void QtGrpcClientDeadlineTest::channelAndCallDeadlineTest()
const auto maxTimeoutDuration = QGrpcDuration(static_cast<int64_t>(MessageLatency const auto maxTimeoutDuration = QGrpcDuration(static_cast<int64_t>(MessageLatency
* maxTimeout)); * maxTimeout));
QGrpcCallOptions callOpts; QGrpcCallOptions callOpts;
callOpts.withDeadline(minTimeoutDuration); callOpts.setDeadline(minTimeoutDuration);
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("sleep"); request.setTestFieldString("sleep");

View File

@ -395,7 +395,7 @@ void QtGrpcClientServerStreamTest::deadline()
QFETCH(const int, ExpectedMessageCount); QFETCH(const int, ExpectedMessageCount);
QGrpcCallOptions opt; QGrpcCallOptions opt;
opt.withDeadline(timeout); opt.setDeadline(timeout);
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("Stream"); request.setTestFieldString("Stream");

View File

@ -34,13 +34,13 @@ void GrpcClientTestBase::initTestCase_data()
<< QFlags{ Channel::Qt } << QFlags{ Channel::Qt }
<< std::shared_ptr<QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{ << std::shared_ptr<QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) } QUrl("http://localhost:50051", QUrl::StrictMode) }
.withMetadata(md))); .setMetadata(md)));
QTest::newRow("Http2ClientJsonUnix") QTest::newRow("Http2ClientJsonUnix")
<< QFlags{ Channel::Qt } << QFlags{ Channel::Qt }
<< std::shared_ptr<QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{ << std::shared_ptr<QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{
QUrl("unix:///tmp/qtgrpc_test.sock", QUrl::StrictMode) } QUrl("unix:///tmp/qtgrpc_test.sock", QUrl::StrictMode) }
.withMetadata(md))); .setMetadata(md)));
} }
#endif #endif
@ -81,7 +81,7 @@ void GrpcClientTestBase::initTestCase_data()
<< std::shared_ptr< << std::shared_ptr<
QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{ QAbstractGrpcChannel>(new QGrpcHttp2Channel(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) } QUrl("http://localhost:50051", QUrl::StrictMode) }
.withDeadline(channelTimeout))); .setDeadline(channelTimeout)));
} }
} }

View File

@ -228,7 +228,10 @@ void QtGrpcClientUnaryCallTest::metadata()
QVERIFY(clientErrorSpy.isValid()); QVERIFY(clientErrorSpy.isValid());
QGrpcCallOptions opt; QGrpcCallOptions opt;
opt.withMetadata({ { "client_header", "1" }, { "client_return_header", "valid_value" } }); opt.setMetadata({
{ "client_header", "1" },
{ "client_return_header", "valid_value" }
});
auto reply = client()->testMetadata({}, opt); auto reply = client()->testMetadata({}, opt);
QGrpcMetadata metadata; QGrpcMetadata metadata;
@ -269,7 +272,7 @@ void QtGrpcClientUnaryCallTest::deadline()
QFETCH(const QGrpcDuration, timeout); QFETCH(const QGrpcDuration, timeout);
QGrpcCallOptions opt; QGrpcCallOptions opt;
opt.withDeadline(timeout); opt.setDeadline(timeout);
SimpleStringMessage request; SimpleStringMessage request;
request.setTestFieldString("sleep"); request.setTestFieldString("sleep");

View File

@ -123,19 +123,19 @@ void QGrpcHttp2ChannelTest::serializationFormat()
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) } QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) }
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Json })); QGrpcSerializationFormat::Format::Json }));
QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) } QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) }
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Protobuf })); QGrpcSerializationFormat::Format::Protobuf }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) } QGrpcHttp2Channel>(QGrpcChannelOptions{ QUrl("http://localhost:50051", QUrl::StrictMode) }
.withSerializationFormat({ "dummy", .setSerializationFormat({ "dummy",
std::make_shared<DummySerializer>() })); std::make_shared<DummySerializer>() }));
QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr);
} }
@ -146,7 +146,7 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc"_ba } })); .setMetadata({ { "content-type"_ba, "application/grpc"_ba } }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
// Initialize with various content-type headers // Initialize with various content-type headers
@ -154,15 +154,14 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, .setMetadata({ { "content-type"_ba, "application/grpc+json"_ba } }));
"application/grpc+json"_ba } }));
QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, .setMetadata({ { "content-type"_ba,
"application/grpc+proto"_ba } })); "application/grpc+proto"_ba } }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
@ -170,25 +169,25 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, .setMetadata({ { "content-type"_ba,
"application/grpc+unknown"_ba } })); "application/grpc+unknown"_ba } }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
// Initialize with the default content-type header and various serialization formats // Initialize with the default content-type header and various serialization formats
channel = std::make_shared<QGrpcHttp2Channel>(QGrpcChannelOptions{ channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, .setMetadata({ { "content-type"_ba, "application/grpc"_ba } })
"application/grpc"_ba } }) .setSerializationFormat(QGrpcSerializationFormat{}));
.withSerializationFormat(QGrpcSerializationFormat{}));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Json })); QGrpcSerializationFormat::Format::Json }));
QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr);
@ -196,8 +195,8 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Protobuf })); QGrpcSerializationFormat::Format::Protobuf }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
@ -205,8 +204,8 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc"_ba } })
.withSerializationFormat({ "dummy", .setSerializationFormat({ "dummy",
std::make_shared<DummySerializer>() })); std::make_shared<DummySerializer>() }));
QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr);
@ -215,8 +214,8 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+json"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+json"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Protobuf })); QGrpcSerializationFormat::Format::Protobuf }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
@ -224,16 +223,16 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+json"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+json"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{})); .setSerializationFormat(QGrpcSerializationFormat{}));
QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+json"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+json"_ba } })
.withSerializationFormat({ "dummy", .setSerializationFormat({ "dummy",
std::make_shared<DummySerializer>() })); std::make_shared<DummySerializer>() }));
QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr);
@ -242,8 +241,8 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+proto"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+proto"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Protobuf })); QGrpcSerializationFormat::Format::Protobuf }));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
@ -251,8 +250,8 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+json"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+json"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{ .setSerializationFormat(QGrpcSerializationFormat{
QGrpcSerializationFormat::Format::Json })); QGrpcSerializationFormat::Format::Json }));
QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufJsonSerializer *>(channel->serializer().get()) != nullptr);
@ -260,16 +259,16 @@ void QGrpcHttp2ChannelTest::serializationFormatWithHeaders()
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc"_ba } })
.withSerializationFormat(QGrpcSerializationFormat{})); .setSerializationFormat(QGrpcSerializationFormat{}));
QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<QProtobufSerializer *>(channel->serializer().get()) != nullptr);
channel = std::make_shared< channel = std::make_shared<
QGrpcHttp2Channel>(QGrpcChannelOptions{ QGrpcHttp2Channel>(QGrpcChannelOptions{
QUrl("http://localhost:50051", QUrl::StrictMode) QUrl("http://localhost:50051", QUrl::StrictMode)
} }
.withMetadata({ { "content-type"_ba, "application/grpc+dummy"_ba } }) .setMetadata({ { "content-type"_ba, "application/grpc+dummy"_ba } })
.withSerializationFormat({ "dummy", .setSerializationFormat({ "dummy",
std::make_shared<DummySerializer>() })); std::make_shared<DummySerializer>() }));
QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr); QVERIFY(dynamic_cast<DummySerializer *>(channel->serializer().get()) != nullptr);
} }