123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #include "clientdefinitionprinter.h"
- #include <google/protobuf/io/zero_copy_stream.h>
- #include "utils.h"
- #include "templates.h"
- #include "generatorcommon.h"
- using namespace QtProtobuf::generator;
- using namespace ::google::protobuf;
- using namespace ::google::protobuf::compiler;
- ClientDefinitionPrinter::ClientDefinitionPrinter(const google::protobuf::ServiceDescriptor *service,
- const std::shared_ptr<::google::protobuf::io::Printer> &printer) :
- DescriptorPrinterBase<google::protobuf::ServiceDescriptor>(service, printer)
- {
- mName += "Client";
- }
- void ClientDefinitionPrinter::printMethods()
- {
- for (int i = 0; i < mDescriptor->method_count(); i++) {
- const MethodDescriptor *method = mDescriptor->method(i);
- MethodMap parameters = common::produceMethodMap(method, mName);
- if (method->server_streaming()) {
- mPrinter->Print(parameters, Templates::ClientMethodServerStreamDefinitionTemplate);
- mPrinter->Print(parameters, Templates::ClientMethodServerStream2DefinitionTemplate);
- if (GeneratorOptions::instance().hasQml()) {
- mPrinter->Print(parameters, Templates::ClientMethodServerStreamQmlDefinitionTemplate);
- }
- } else {
- mPrinter->Print(parameters, Templates::ClientMethodDefinitionSyncTemplate);
- mPrinter->Print(parameters, Templates::ClientMethodDefinitionAsyncTemplate);
- mPrinter->Print(parameters, Templates::ClientMethodDefinitionAsync2Template);
- if (GeneratorOptions::instance().hasQml()) {
- mPrinter->Print(parameters, Templates::ClientMethodDefinitionQmlTemplate);
- }
- }
- }
- }
- void ClientDefinitionPrinter::printConstructor()
- {
- mPrinter->Print({ {"classname", mName},
- {"parent_class", "QAbstractGrpcClient"},
- {"service_name", mDescriptor->full_name()} }, Templates::ClientConstructorDefinitionTemplate);
- }
|