aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/compiler/csharp_plugin.cc
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2016-04-25 15:57:10 -0700
committerGravatar Jan Tattermusch <jtattermusch@google.com>2016-04-26 18:01:35 -0700
commit5f8872f8995cd45d86feb361bfa9b8084c51b85e (patch)
tree92ed5876d50f1e3d20afdfb8c56b8409376c5bcf /src/compiler/csharp_plugin.cc
parenta967ee567e24c998b45560ba3e32032d7791649b (diff)
introduce c# generator options
Diffstat (limited to 'src/compiler/csharp_plugin.cc')
-rw-r--r--src/compiler/csharp_plugin.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/compiler/csharp_plugin.cc b/src/compiler/csharp_plugin.cc
index bc86fbd616..fd1ec99e2b 100644
--- a/src/compiler/csharp_plugin.cc
+++ b/src/compiler/csharp_plugin.cc
@@ -51,7 +51,22 @@ class CSharpGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator {
std::vector<std::pair<grpc::string, grpc::string> > options;
grpc::protobuf::compiler::ParseGeneratorParameter(parameter, &options);
- grpc::string code = grpc_csharp_generator::GetServices(file);
+ bool generate_client = true;
+ bool generate_server = true;
+ 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 {
+ *error = "Unknown generator option: " + options[i].first;
+ return false;
+ }
+ }
+
+ grpc::string code = grpc_csharp_generator::GetServices(file,
+ generate_client,
+ generate_server);
if (code.size() == 0) {
return true; // don't generate a file if there are no services
}