When generating code with --grpc, --cpp and using filename-suffix, the generated grpc files where not including the correct header that had the filename-suffix. As a suffix, they used the default "_generated".
Free functions for these were used to get the suffix. FlatBufFile had such methods, but also needed to be into its base File and use these.
- grpc generated files include the correct message header.
- grpc generated files also have the suffix
- grpc generated cc file does not include initial message header
vars["filename"] = file->filename();
vars["filename_identifier"] = FilenameIdentifier(file->filename());
vars["filename_base"] = file->filename_without_ext();
- vars["message_header_ext"] = message_header_ext();
+ vars["message_header_ext"] = file->message_header_ext();
printer->Print(vars, "// Generated by the gRPC C++ plugin.\n");
printer->Print(vars,
vars["filename"] = file->filename();
vars["filename_base"] = file->filename_without_ext();
- vars["message_header_ext"] = message_header_ext();
- vars["service_header_ext"] = service_header_ext();
+ vars["service_header_ext"] = file->service_header_ext();
printer->Print(vars, "// Generated by the gRPC C++ plugin.\n");
printer->Print(vars,
"// If you make any local change, they will be lost.\n");
printer->Print(vars, "// source: $filename$\n\n");
- printer->Print(vars, "#include \"$filename_base$$message_header_ext$\"\n");
printer->Print(vars, "#include \"$filename_base$$service_header_ext$\"\n");
printer->Print(vars, "\n");
}
virtual grpc::string package() const = 0;
virtual std::vector<grpc::string> package_parts() const = 0;
virtual grpc::string additional_headers() const = 0;
+ virtual std::string message_header_ext() const = 0;
+ virtual std::string service_header_ext() const = 0;
virtual int service_count() const = 0;
virtual std::unique_ptr<const Service> service(int i) const = 0;
return StripExtension(file_name_);
}
- std::string message_header_ext() const { return "_generated.h"; }
+ std::string message_header_ext() const {
+ return parser_.opts.filename_suffix + ".h";
+ }
- std::string service_header_ext() const { return ".grpc.fb.h"; }
+ std::string service_header_ext() const {
+ return parser_.opts.filename_suffix + ".grpc.fb.h";
+ }
std::string package() const {
return parser_.current_namespace_->GetFullyQualifiedName("");
grpc_cpp_generator::GetSourceServices(&fbfile, generator_parameters) +
grpc_cpp_generator::GetSourceEpilogue(&fbfile, generator_parameters);
- return flatbuffers::SaveFile((path + file_name + ".grpc.fb.h").c_str(),
- header_code, false) &&
- flatbuffers::SaveFile((path + file_name + ".grpc.fb.cc").c_str(),
- source_code, false);
+ return flatbuffers::SaveFile(
+ (path + file_name + parser.opts.filename_suffix + ".grpc.fb.h")
+ .c_str(),
+ header_code, false) &&
+ flatbuffers::SaveFile(
+ (path + file_name + parser.opts.filename_suffix + ".grpc.fb.cc")
+ .c_str(),
+ source_code, false);
}
class JavaGRPCGenerator : public flatbuffers::BaseGenerator {