/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#pragma once
#include "qtgrpcgen.qpb.h"

#include <QtGrpc/qgrpccallreply.h>
#include <QtGrpc/qgrpcclientbase.h>
#include <QtGrpc/qgrpcstream.h>

#include <memory>

namespace qtgrpc::tests {
namespace TestService {

class Client : public QGrpcClientBase
{
    Q_OBJECT

public:
    explicit Client(QObject *parent = nullptr);
    ~Client() override;

    [[nodiscard]]
    std::unique_ptr<QGrpcCallReply> testMethod(const qtgrpc::tests::IntMessage &arg);
    [[nodiscard]]
    std::unique_ptr<QGrpcCallReply> testMethod(const qtgrpc::tests::IntMessage &arg, const QGrpcCallOptions &options);

    [[nodiscard]]
    std::unique_ptr<QGrpcServerStream> testMethodServerStream(const qtgrpc::tests::IntMessage &arg);
    [[nodiscard]]
    std::unique_ptr<QGrpcServerStream> testMethodServerStream(const qtgrpc::tests::IntMessage &arg, const QGrpcCallOptions &options);

    [[nodiscard]]
    std::unique_ptr<QGrpcClientStream> testMethodClientStream(const qtgrpc::tests::IntMessage &arg);
    [[nodiscard]]
    std::unique_ptr<QGrpcClientStream> testMethodClientStream(const qtgrpc::tests::IntMessage &arg, const QGrpcCallOptions &options);

    [[nodiscard]]
    std::unique_ptr<QGrpcBidiStream> testMethodBiStream(const qtgrpc::tests::IntMessage &arg);
    [[nodiscard]]
    std::unique_ptr<QGrpcBidiStream> testMethodBiStream(const qtgrpc::tests::IntMessage &arg, const QGrpcCallOptions &options);


};
} // namespace TestService
} // namespace qtgrpc::tests

