|
|
|
@ -64,16 +64,15 @@ T* array_end(T (&array)[N]) { |
|
|
|
|
|
|
|
|
|
void PrintIncludes(grpc_generator::Printer* printer, |
|
|
|
|
const std::vector<grpc::string>& headers, |
|
|
|
|
const Parameters& params) { |
|
|
|
|
bool use_system_headers, const grpc::string& search_path) { |
|
|
|
|
std::map<grpc::string, grpc::string> vars; |
|
|
|
|
|
|
|
|
|
vars["l"] = params.use_system_headers ? '<' : '"'; |
|
|
|
|
vars["r"] = params.use_system_headers ? '>' : '"'; |
|
|
|
|
vars["l"] = use_system_headers ? '<' : '"'; |
|
|
|
|
vars["r"] = use_system_headers ? '>' : '"'; |
|
|
|
|
|
|
|
|
|
auto& s = params.grpc_search_path; |
|
|
|
|
if (!s.empty()) { |
|
|
|
|
vars["l"] += s; |
|
|
|
|
if (s[s.size() - 1] != '/') { |
|
|
|
|
if (!search_path.empty()) { |
|
|
|
|
vars["l"] += search_path; |
|
|
|
|
if (search_path[search_path.size() - 1] != '/') { |
|
|
|
|
vars["l"] += '/'; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -124,6 +123,10 @@ grpc::string GetHeaderIncludes(grpc_generator::File* file, |
|
|
|
|
auto printer = file->CreatePrinter(&output); |
|
|
|
|
std::map<grpc::string, grpc::string> vars; |
|
|
|
|
|
|
|
|
|
if (!params.additional_header_includes.empty()) { |
|
|
|
|
PrintIncludes(printer.get(), params.additional_header_includes, false, |
|
|
|
|
""); |
|
|
|
|
} |
|
|
|
|
static const char* headers_strs[] = { |
|
|
|
|
"grpc++/impl/codegen/async_stream.h", |
|
|
|
|
"grpc++/impl/codegen/async_unary_call.h", |
|
|
|
@ -135,7 +138,8 @@ grpc::string GetHeaderIncludes(grpc_generator::File* file, |
|
|
|
|
"grpc++/impl/codegen/stub_options.h", |
|
|
|
|
"grpc++/impl/codegen/sync_stream.h"}; |
|
|
|
|
std::vector<grpc::string> headers(headers_strs, array_end(headers_strs)); |
|
|
|
|
PrintIncludes(printer.get(), headers, params); |
|
|
|
|
PrintIncludes(printer.get(), headers, params.use_system_headers, |
|
|
|
|
params.grpc_search_path); |
|
|
|
|
printer->Print(vars, "\n"); |
|
|
|
|
printer->Print(vars, "namespace grpc {\n"); |
|
|
|
|
printer->Print(vars, "class CompletionQueue;\n"); |
|
|
|
@ -1153,7 +1157,8 @@ grpc::string GetSourceIncludes(grpc_generator::File* file, |
|
|
|
|
"grpc++/impl/codegen/service_type.h", |
|
|
|
|
"grpc++/impl/codegen/sync_stream.h"}; |
|
|
|
|
std::vector<grpc::string> headers(headers_strs, array_end(headers_strs)); |
|
|
|
|
PrintIncludes(printer.get(), headers, params); |
|
|
|
|
PrintIncludes(printer.get(), headers, params.use_system_headers, |
|
|
|
|
params.grpc_search_path); |
|
|
|
|
|
|
|
|
|
if (!file->package().empty()) { |
|
|
|
|
std::vector<grpc::string> parts = file->package_parts(); |
|
|
|
@ -1570,20 +1575,19 @@ grpc::string GetMockIncludes(grpc_generator::File* file, |
|
|
|
|
"grpc++/impl/codegen/sync_stream.h", |
|
|
|
|
}; |
|
|
|
|
std::vector<grpc::string> headers(headers_strs, array_end(headers_strs)); |
|
|
|
|
PrintIncludes(printer.get(), headers, params); |
|
|
|
|
PrintIncludes(printer.get(), headers, params.use_system_headers, |
|
|
|
|
params.grpc_search_path); |
|
|
|
|
|
|
|
|
|
std::vector<grpc::string> gmock_header; |
|
|
|
|
if (params.gmock_search_path.empty()) { |
|
|
|
|
gmock_header.push_back("gmock/gmock.h"); |
|
|
|
|
PrintIncludes(printer.get(), gmock_header, params); |
|
|
|
|
PrintIncludes(printer.get(), gmock_header, params.use_system_headers, |
|
|
|
|
params.grpc_search_path); |
|
|
|
|
} else { |
|
|
|
|
gmock_header.push_back("gmock.h"); |
|
|
|
|
// Copy a params to generate gmock header.
|
|
|
|
|
Parameters gmock_params(params); |
|
|
|
|
// We use local includes when a gmock_search_path is given
|
|
|
|
|
gmock_params.use_system_headers = false; |
|
|
|
|
gmock_params.grpc_search_path = params.gmock_search_path; |
|
|
|
|
PrintIncludes(printer.get(), gmock_header, gmock_params); |
|
|
|
|
PrintIncludes(printer.get(), gmock_header, false, |
|
|
|
|
params.gmock_search_path); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!file->package().empty()) { |
|
|
|
|