xref: /aosp_15_r20/external/flatbuffers/grpc/src/compiler/go_generator.h (revision 890232f25432b36107d06881e0a25aaa6b473652)
1 #ifndef GRPC_INTERNAL_COMPILER_GO_GENERATOR_H
2 #define GRPC_INTERNAL_COMPILER_GO_GENERATOR_H
3 
4 // go generator is used to generate GRPC code for serialization system, such as
5 // flatbuffers
6 #include <memory>
7 #include <vector>
8 
9 #include "src/compiler/schema_interface.h"
10 
11 namespace grpc_go_generator {
12 
13 struct Parameters {
14   // Defines the custom parameter types for methods
15   // eg: flatbuffers uses flatbuffers.Builder as input for the client and output
16   // for the server
17   grpc::string custom_method_io_type;
18 
19   // Package name for the service
20   grpc::string package_name;
21 
22   // Prefix for RPC Calls
23   grpc::string service_prefix;
24 };
25 
26 // Return the source of the generated service file.
27 grpc::string GenerateServiceSource(grpc_generator::File *file,
28                                    const grpc_generator::Service *service,
29                                    grpc_go_generator::Parameters *parameters);
30 
31 }  // namespace grpc_go_generator
32 
33 #endif  // GRPC_INTERNAL_COMPILER_GO_GENERATOR_H
34