blob: 766e100c584b7daadeaf78239cde753dd325e262 [file] [log] [blame]
Austin Schuhe89fa2d2019-08-14 20:24:23 -07001#ifndef GRPC_INTERNAL_COMPILER_GO_GENERATOR_H
2#define GRPC_INTERNAL_COMPILER_GO_GENERATOR_H
3
James Kuszmaul8e62b022022-03-22 09:33:25 -07004// go generator is used to generate GRPC code for serialization system, such as
5// flatbuffers
Austin Schuhe89fa2d2019-08-14 20:24:23 -07006#include <memory>
7#include <vector>
8
9#include "src/compiler/schema_interface.h"
10
11namespace grpc_go_generator {
12
13struct Parameters {
James Kuszmaul8e62b022022-03-22 09:33:25 -070014 // Defines the custom parameter types for methods
15 // eg: flatbuffers uses flatbuffers.Builder as input for the client and output
16 // for the server
Austin Schuhe89fa2d2019-08-14 20:24:23 -070017 grpc::string custom_method_io_type;
18
James Kuszmaul8e62b022022-03-22 09:33:25 -070019 // Package name for the service
Austin Schuhe89fa2d2019-08-14 20:24:23 -070020 grpc::string package_name;
21
James Kuszmaul8e62b022022-03-22 09:33:25 -070022 // Prefix for RPC Calls
Austin Schuhe89fa2d2019-08-14 20:24:23 -070023 grpc::string service_prefix;
24};
25
26// Return the source of the generated service file.
27grpc::string GenerateServiceSource(grpc_generator::File *file,
28 const grpc_generator::Service *service,
29 grpc_go_generator::Parameters *parameters);
30
James Kuszmaul8e62b022022-03-22 09:33:25 -070031} // namespace grpc_go_generator
Austin Schuhe89fa2d2019-08-14 20:24:23 -070032
33#endif // GRPC_INTERNAL_COMPILER_GO_GENERATOR_H