1 #ifndef GRPC_INTERNAL_COMPILER_CPP_GENERATOR_H 2 #define GRPC_INTERNAL_COMPILER_CPP_GENERATOR_H 3 4 // cpp_generator.h/.cc do not directly depend on GRPC/ProtoBuf, such that they 5 // can be used to generate code for other serialization systems, such as 6 // FlatBuffers. 7 8 #include <memory> 9 #include <vector> 10 11 #include "src/compiler/schema_interface.h" 12 13 #ifndef GRPC_CUSTOM_STRING 14 # include <string> 15 # define GRPC_CUSTOM_STRING std::string 16 #endif 17 18 namespace grpc { 19 20 typedef GRPC_CUSTOM_STRING string; 21 22 } // namespace grpc 23 24 namespace grpc_cpp_generator { 25 26 // Contains all the parameters that are parsed from the command line. 27 struct Parameters { 28 // Puts the service into a namespace 29 grpc::string services_namespace; 30 // Use system includes (<>) or local includes ("") 31 bool use_system_headers; 32 // Prefix to any grpc include 33 grpc::string grpc_search_path; 34 // Generate GMOCK code to facilitate unit testing. 35 bool generate_mock_code; 36 // By default, use "_generated.h" 37 std::string message_header_extension; 38 // Default: ".grpc.fb.h" 39 std::string service_header_extension; 40 }; 41 42 // Return the prologue of the generated header file. 43 grpc::string GetHeaderPrologue(grpc_generator::File *file, 44 const Parameters ¶ms); 45 46 // Return the includes needed for generated header file. 47 grpc::string GetHeaderIncludes(grpc_generator::File *file, 48 const Parameters ¶ms); 49 50 // Return the includes needed for generated source file. 51 grpc::string GetSourceIncludes(grpc_generator::File *file, 52 const Parameters ¶ms); 53 54 // Return the epilogue of the generated header file. 55 grpc::string GetHeaderEpilogue(grpc_generator::File *file, 56 const Parameters ¶ms); 57 58 // Return the prologue of the generated source file. 59 grpc::string GetSourcePrologue(grpc_generator::File *file, 60 const Parameters ¶ms); 61 62 // Return the services for generated header file. 63 grpc::string GetHeaderServices(grpc_generator::File *file, 64 const Parameters ¶ms); 65 66 // Return the services for generated source file. 67 grpc::string GetSourceServices(grpc_generator::File *file, 68 const Parameters ¶ms); 69 70 // Return the epilogue of the generated source file. 71 grpc::string GetSourceEpilogue(grpc_generator::File *file, 72 const Parameters ¶ms); 73 74 // Return the prologue of the generated mock file. 75 grpc::string GetMockPrologue(grpc_generator::File *file, 76 const Parameters ¶ms); 77 78 // Return the includes needed for generated mock file. 79 grpc::string GetMockIncludes(grpc_generator::File *file, 80 const Parameters ¶ms); 81 82 // Return the services for generated mock file. 83 grpc::string GetMockServices(grpc_generator::File *file, 84 const Parameters ¶ms); 85 86 // Return the epilogue of generated mock file. 87 grpc::string GetMockEpilogue(grpc_generator::File *file, 88 const Parameters ¶ms); 89 90 // Return the prologue of the generated mock file. 91 grpc::string GetMockPrologue(grpc_generator::File *file, 92 const Parameters ¶ms); 93 94 // Return the includes needed for generated mock file. 95 grpc::string GetMockIncludes(grpc_generator::File *file, 96 const Parameters ¶ms); 97 98 // Return the services for generated mock file. 99 grpc::string GetMockServices(grpc_generator::File *file, 100 const Parameters ¶ms); 101 102 // Return the epilogue of generated mock file. 103 grpc::string GetMockEpilogue(grpc_generator::File *file, 104 const Parameters ¶ms); 105 106 } // namespace grpc_cpp_generator 107 108 #endif // GRPC_INTERNAL_COMPILER_CPP_GENERATOR_H 109