diff options
author | 2016-04-27 17:10:37 -0700 | |
---|---|---|
committer | 2016-04-27 17:10:37 -0700 | |
commit | b143ca0f3619840c26038ed746010e08104561b3 (patch) | |
tree | 012ca6518db409915740c71887b3d1463c8540b4 /src/compiler/csharp_plugin.cc | |
parent | 8cb50edbed1e75ab39c5dbd513a702d779ebf75a (diff) | |
parent | 7c0e1eec85d74c5b1c8d9565f0bc28194aebae4f (diff) |
Merge pull request #6284 from jtattermusch/csharp_optional_client_codegen
Add new cmdline options to C# codegen.
Diffstat (limited to 'src/compiler/csharp_plugin.cc')
-rw-r--r-- | src/compiler/csharp_plugin.cc | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/compiler/csharp_plugin.cc b/src/compiler/csharp_plugin.cc index 8b9395f9e2..5350e73f10 100644 --- a/src/compiler/csharp_plugin.cc +++ b/src/compiler/csharp_plugin.cc @@ -48,7 +48,29 @@ class CSharpGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { const grpc::string ¶meter, grpc::protobuf::compiler::GeneratorContext *context, grpc::string *error) const { - grpc::string code = grpc_csharp_generator::GetServices(file); + std::vector<std::pair<grpc::string, grpc::string> > options; + grpc::protobuf::compiler::ParseGeneratorParameter(parameter, &options); + + bool generate_client = true; + bool generate_server = true; + bool internal_access = false; + for (size_t i = 0; i < options.size(); i++) { + if (options[i].first == "no_client") { + generate_client = false; + } else if (options[i].first == "no_server") { + generate_server = false; + } else if (options[i].first == "internal_access") { + internal_access = true; + } else { + *error = "Unknown generator option: " + options[i].first; + return false; + } + } + + grpc::string code = grpc_csharp_generator::GetServices(file, + generate_client, + generate_server, + internal_access); if (code.size() == 0) { return true; // don't generate a file if there are no services } |