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 }; 39 40 // Return the prologue of the generated header file. 41 grpc::string GetHeaderPrologue(grpc_generator::File *file, 42 const Parameters ¶ms); 43 44 // Return the includes needed for generated header file. 45 grpc::string GetHeaderIncludes(grpc_generator::File *file, 46 const Parameters ¶ms); 47 48 // Return the includes needed for generated source file. 49 grpc::string GetSourceIncludes(grpc_generator::File *file, 50 const Parameters ¶ms); 51 52 // Return the epilogue of the generated header file. 53 grpc::string GetHeaderEpilogue(grpc_generator::File *file, 54 const Parameters ¶ms); 55 56 // Return the prologue of the generated source file. 57 grpc::string GetSourcePrologue(grpc_generator::File *file, 58 const Parameters ¶ms); 59 60 // Return the services for generated header file. 61 grpc::string GetHeaderServices(grpc_generator::File *file, 62 const Parameters ¶ms); 63 64 // Return the services for generated source file. 65 grpc::string GetSourceServices(grpc_generator::File *file, 66 const Parameters ¶ms); 67 68 // Return the epilogue of the generated source file. 69 grpc::string GetSourceEpilogue(grpc_generator::File *file, 70 const Parameters ¶ms); 71 72 // Return the prologue of the generated mock file. 73 grpc::string GetMockPrologue(grpc_generator::File *file, 74 const Parameters ¶ms); 75 76 // Return the includes needed for generated mock file. 77 grpc::string GetMockIncludes(grpc_generator::File *file, 78 const Parameters ¶ms); 79 80 // Return the services for generated mock file. 81 grpc::string GetMockServices(grpc_generator::File *file, 82 const Parameters ¶ms); 83 84 // Return the epilogue of generated mock file. 85 grpc::string GetMockEpilogue(grpc_generator::File *file, 86 const Parameters ¶ms); 87 88 // Return the prologue of the generated mock file. 89 grpc::string GetMockPrologue(grpc_generator::File *file, 90 const Parameters ¶ms); 91 92 // Return the includes needed for generated mock file. 93 grpc::string GetMockIncludes(grpc_generator::File *file, 94 const Parameters ¶ms); 95 96 // Return the services for generated mock file. 97 grpc::string GetMockServices(grpc_generator::File *file, 98 const Parameters ¶ms); 99 100 // Return the epilogue of generated mock file. 101 grpc::string GetMockEpilogue(grpc_generator::File *file, 102 const Parameters ¶ms); 103 104 } // namespace grpc_cpp_generator 105 106 #endif // GRPC_INTERNAL_COMPILER_CPP_GENERATOR_H 107