grpc
third_party
protobuf
src
google
protobuf
compiler
cpp
protobuf/src/google/protobuf/compiler/cpp/cpp_service.h
Go to the documentation of this file.
1
// Protocol Buffers - Google's data interchange format
2
// Copyright 2008 Google Inc. All rights reserved.
3
// https://developers.google.com/protocol-buffers/
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright
10
// notice, this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above
12
// copyright notice, this list of conditions and the following disclaimer
13
// in the documentation and/or other materials provided with the
14
// distribution.
15
// * Neither the name of Google Inc. nor the names of its
16
// contributors may be used to endorse or promote products derived from
17
// this software without specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31
// Author: kenton@google.com (Kenton Varda)
32
// Based on original Protocol Buffers design by
33
// Sanjay Ghemawat, Jeff Dean, and others.
34
35
#ifndef GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
36
#define GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
37
38
#include <map>
39
#include <string>
40
#include <google/protobuf/compiler/cpp/cpp_options.h>
41
#include <google/protobuf/descriptor.h>
42
43
namespace
google
{
44
namespace
protobuf
{
45
namespace
io
{
46
class
Printer
;
// printer.h
47
}
48
}
// namespace protobuf
49
}
// namespace google
50
51
namespace
google
{
52
namespace
protobuf
{
53
namespace
compiler
{
54
namespace
cpp
{
55
56
class
ServiceGenerator {
57
public
:
58
// See generator.cc for the meaning of dllexport_decl.
59
explicit
ServiceGenerator
(
const
ServiceDescriptor
*
descriptor
,
60
const
std::map<std::string, std::string>& vars,
61
const
Options&
options
);
62
~ServiceGenerator
();
63
64
// Header stuff.
65
66
// Generate the class definitions for the service's interface and the
67
// stub implementation.
68
void
GenerateDeclarations
(
io::Printer
* printer);
69
70
// Source file stuff.
71
72
// Generate implementations of everything declared by
73
// GenerateDeclarations().
74
void
GenerateImplementation
(
io::Printer
* printer);
75
76
private
:
77
enum
RequestOrResponse
{
REQUEST
,
RESPONSE
};
78
enum
VirtualOrNon
{
VIRTUAL
,
NON_VIRTUAL
};
79
80
// Header stuff.
81
82
// Generate the service abstract interface.
83
void
GenerateInterface
(
io::Printer
* printer);
84
85
// Generate the stub class definition.
86
void
GenerateStubDefinition
(
io::Printer
* printer);
87
88
// Prints signatures for all methods in the
89
void
GenerateMethodSignatures
(
VirtualOrNon
virtual_or_non,
90
io::Printer
* printer);
91
92
// Source file stuff.
93
94
// Generate the default implementations of the service methods, which
95
// produce a "not implemented" error.
96
void
GenerateNotImplementedMethods
(
io::Printer
* printer);
97
98
// Generate the CallMethod() method of the service.
99
void
GenerateCallMethod
(
io::Printer
* printer);
100
101
// Generate the Get{Request,Response}Prototype() methods.
102
void
GenerateGetPrototype
(
RequestOrResponse
which
,
io::Printer
* printer);
103
104
// Generate the stub's implementations of the service methods.
105
void
GenerateStubMethods
(
io::Printer
* printer);
106
107
const
ServiceDescriptor
*
descriptor_
;
108
std::map<std::string, std::string>
vars_
;
109
const
Options
&
options_
;
110
111
int
index_in_metadata_
;
112
113
friend
class
FileGenerator
;
114
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
(
ServiceGenerator
);
115
};
116
117
}
// namespace cpp
118
}
// namespace compiler
119
}
// namespace protobuf
120
}
// namespace google
121
122
#endif // GOOGLE_PROTOBUF_COMPILER_CPP_SERVICE_H__
google::protobuf::compiler::cpp::ServiceGenerator::NON_VIRTUAL
@ NON_VIRTUAL
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:78
google::protobuf::compiler::cpp::ServiceGenerator::GenerateGetPrototype
void GenerateGetPrototype(RequestOrResponse which, io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:270
options
double_dict options[]
Definition:
capstone_test.c:55
grpc::protobuf::io::Printer
GRPC_CUSTOM_PRINTER Printer
Definition:
src/compiler/config.h:54
google::protobuf
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:12
google::protobuf::compiler::cpp::ServiceGenerator::GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator)
google::protobuf::compiler::cpp::ServiceGenerator::GenerateDeclarations
void GenerateDeclarations(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:67
google::protobuf::compiler::cpp::ServiceGenerator::GenerateInterface
void GenerateInterface(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:78
google::protobuf::compiler::cpp::ServiceGenerator::ServiceGenerator
ServiceGenerator(const ServiceDescriptor *descriptor, const std::map< std::string, std::string > &vars, const Options &options)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:57
google::protobuf::compiler::cpp::ServiceGenerator::VIRTUAL
@ VIRTUAL
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:78
google::protobuf::ServiceDescriptor
Definition:
bloaty/third_party/protobuf/src/google/protobuf/descriptor.h:1152
google::protobuf::compiler::cpp::ServiceGenerator::RESPONSE
@ RESPONSE
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:77
google::protobuf::compiler::cpp::ServiceGenerator::GenerateCallMethod
void GenerateCallMethod(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:229
python_utils.jobset.which
def which(filename)
Definition:
jobset.py:157
google::protobuf::compiler::cpp::ServiceGenerator::GenerateMethodSignatures
void GenerateMethodSignatures(VirtualOrNon virtual_or_non, io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:153
google::protobuf::compiler::cpp::ServiceGenerator::GenerateStubDefinition
void GenerateStubDefinition(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:122
io
cpp
Definition:
third_party/bloaty/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py:1
google::protobuf::compiler::cpp::Options
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_options.h:52
google::protobuf::compiler::cpp::ServiceGenerator::index_in_metadata_
int index_in_metadata_
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:111
google::protobuf::compiler::cpp::ServiceGenerator::VirtualOrNon
VirtualOrNon
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:78
google::protobuf::io::Printer
Definition:
bloaty/third_party/protobuf/src/google/protobuf/io/printer.h:181
google::protobuf::compiler::cpp::ServiceGenerator::vars_
std::map< std::string, std::string > vars_
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:108
google::protobuf::compiler::cpp::ServiceGenerator
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:56
google::protobuf::compiler::cpp::FileGenerator
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.h:68
google::protobuf::compiler::cpp::ServiceGenerator::~ServiceGenerator
~ServiceGenerator()
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:65
google::protobuf::compiler::cpp::ServiceGenerator::REQUEST
@ REQUEST
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:77
google::protobuf::compiler::cpp::ServiceGenerator::options_
const Options & options_
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:109
google::protobuf::compiler::cpp::ServiceGenerator::GenerateImplementation
void GenerateImplementation(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:170
google::protobuf::compiler::cpp::ServiceGenerator::GenerateNotImplementedMethods
void GenerateNotImplementedMethods(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:212
google::protobuf::compiler::cpp::ServiceGenerator::descriptor_
const ServiceDescriptor * descriptor_
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:107
google::protobuf::compiler::cpp::ServiceGenerator::GenerateStubMethods
void GenerateStubMethods(io::Printer *printer)
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc:306
descriptor
static const char descriptor[1336]
Definition:
certs.upbdefs.c:16
grpc::protobuf::ServiceDescriptor
GRPC_CUSTOM_SERVICEDESCRIPTOR ServiceDescriptor
Definition:
include/grpcpp/impl/codegen/config_protobuf.h:88
compiler
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc:21
google
Definition:
bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:11
google::protobuf::compiler::cpp::ServiceGenerator::RequestOrResponse
RequestOrResponse
Definition:
bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h:77
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:06