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

#ifndef QTGRPCGEN_CLIENT_GRPC_QPB_H
#define QTGRPCGEN_CLIENT_GRPC_QPB_H

#include "qtgrpc/tests/qtgrpcgen.qpb.h"
#include "tst_qtgrpcgen_generate_package_subfolders_exports.qpb.h"

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

#include <memory>

namespace qtgrpc::tests {
namespace TestService {

class QPB_TST_QTGRPCGEN_GENERATE_PACKAGE_SUBFOLDERS_EXPORT 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

#endif // QTGRPCGEN_CLIENT_GRPC_QPB_H
