aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2018-05-31 08:44:58 +0200
committerGravatar Jan Tattermusch <jtattermusch@google.com>2018-05-31 17:19:47 +0200
commit57139d1eefc31eebefb0a2af7ffc932ba8ded349 (patch)
treecdd53c37461d9474df82e466d947801fcbb6c9b5 /src
parent614331a50682c74fa8c02dcea674ca2ef5746225 (diff)
fix C# codegen for empty service
Diffstat (limited to 'src')
-rw-r--r--src/compiler/csharp_generator.cc12
-rw-r--r--src/csharp/Grpc.Examples/MathGrpc.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck/HealthGrpc.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/BenchmarkServiceGrpc.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/EmptyService.cs38
-rw-r--r--src/csharp/Grpc.IntegrationTesting/EmptyServiceGrpc.cs85
-rw-r--r--src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/ReportQpsScenarioServiceGrpc.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/TestGrpc.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/WorkerServiceGrpc.cs2
-rw-r--r--src/csharp/Grpc.Reflection/ReflectionGrpc.cs2
-rwxr-xr-xsrc/csharp/generate_proto_csharp.sh2
-rw-r--r--src/proto/grpc/testing/empty_service.proto23
13 files changed, 160 insertions, 16 deletions
diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index 6e2730579a..14173e0794 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -590,19 +590,16 @@ void GenerateBindServiceMethod(Printer* out, const ServiceDescriptor* service) {
out->Print("{\n");
out->Indent();
- out->Print("return grpc::ServerServiceDefinition.CreateBuilder()\n");
+ out->Print("return grpc::ServerServiceDefinition.CreateBuilder()");
out->Indent();
out->Indent();
for (int i = 0; i < service->method_count(); i++) {
const MethodDescriptor* method = service->method(i);
- out->Print(".AddMethod($methodfield$, serviceImpl.$methodname$)",
+ out->Print("\n.AddMethod($methodfield$, serviceImpl.$methodname$)",
"methodfield", GetMethodFieldName(method), "methodname",
method->name());
- if (i == service->method_count() - 1) {
- out->Print(".Build();");
- }
- out->Print("\n");
}
+ out->Print(".Build();\n");
out->Outdent();
out->Outdent();
@@ -676,7 +673,8 @@ grpc::string GetServices(const FileDescriptor* file, bool generate_client,
out.PrintRaw(leading_comments.c_str());
}
- out.Print("#pragma warning disable 1591\n");
+ out.Print("#pragma warning disable 0414, 1591\n");
+
out.Print("#region Designer generated code\n");
out.Print("\n");
out.Print("using grpc = global::Grpc.Core;\n");
diff --git a/src/csharp/Grpc.Examples/MathGrpc.cs b/src/csharp/Grpc.Examples/MathGrpc.cs
index 045708b947..a4739da81d 100644
--- a/src/csharp/Grpc.Examples/MathGrpc.cs
+++ b/src/csharp/Grpc.Examples/MathGrpc.cs
@@ -17,7 +17,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
index a26f483981..ebd890e48d 100644
--- a/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthGrpc.cs
@@ -20,7 +20,7 @@
// The canonical version of this proto can be found at
// https://github.com/grpc/grpc-proto/blob/master/grpc/health/v1/health.proto
//
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceGrpc.cs b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceGrpc.cs
index 20b933fdfa..e2a4b93cef 100644
--- a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceGrpc.cs
@@ -19,7 +19,7 @@
//
// An integration test service that covers all the method signature permutations
// of unary/streaming requests/responses.
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.IntegrationTesting/EmptyService.cs b/src/csharp/Grpc.IntegrationTesting/EmptyService.cs
new file mode 100644
index 0000000000..e9fe5b79ef
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/EmptyService.cs
@@ -0,0 +1,38 @@
+// <auto-generated>
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: src/proto/grpc/testing/empty_service.proto
+// </auto-generated>
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.Protobuf;
+using pbc = global::Google.Protobuf.Collections;
+using pbr = global::Google.Protobuf.Reflection;
+using scg = global::System.Collections.Generic;
+namespace Grpc.Testing {
+
+ /// <summary>Holder for reflection information generated from src/proto/grpc/testing/empty_service.proto</summary>
+ public static partial class EmptyServiceReflection {
+
+ #region Descriptor
+ /// <summary>File descriptor for src/proto/grpc/testing/empty_service.proto</summary>
+ public static pbr::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static EmptyServiceReflection() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CipzcmMvcHJvdG8vZ3JwYy90ZXN0aW5nL2VtcHR5X3NlcnZpY2UucHJvdG8S",
+ "DGdycGMudGVzdGluZzIOCgxFbXB0eVNlcnZpY2ViBnByb3RvMw=="));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(null, null));
+ }
+ #endregion
+
+ }
+}
+
+#endregion Designer generated code
diff --git a/src/csharp/Grpc.IntegrationTesting/EmptyServiceGrpc.cs b/src/csharp/Grpc.IntegrationTesting/EmptyServiceGrpc.cs
new file mode 100644
index 0000000000..2d233fbdc0
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/EmptyServiceGrpc.cs
@@ -0,0 +1,85 @@
+// <auto-generated>
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: src/proto/grpc/testing/empty_service.proto
+// </auto-generated>
+// Original file comments:
+// Copyright 2018 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#pragma warning disable 0414, 1591
+#region Designer generated code
+
+using grpc = global::Grpc.Core;
+
+namespace Grpc.Testing {
+ /// <summary>
+ /// A service that has zero methods.
+ /// See https://github.com/grpc/grpc/issues/15574
+ /// </summary>
+ public static partial class EmptyService
+ {
+ static readonly string __ServiceName = "grpc.testing.EmptyService";
+
+
+ /// <summary>Service descriptor</summary>
+ public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor
+ {
+ get { return global::Grpc.Testing.EmptyServiceReflection.Descriptor.Services[0]; }
+ }
+
+ /// <summary>Base class for server-side implementations of EmptyService</summary>
+ public abstract partial class EmptyServiceBase
+ {
+ }
+
+ /// <summary>Client for EmptyService</summary>
+ public partial class EmptyServiceClient : grpc::ClientBase<EmptyServiceClient>
+ {
+ /// <summary>Creates a new client for EmptyService</summary>
+ /// <param name="channel">The channel to use to make remote calls.</param>
+ public EmptyServiceClient(grpc::Channel channel) : base(channel)
+ {
+ }
+ /// <summary>Creates a new client for EmptyService that uses a custom <c>CallInvoker</c>.</summary>
+ /// <param name="callInvoker">The callInvoker to use to make remote calls.</param>
+ public EmptyServiceClient(grpc::CallInvoker callInvoker) : base(callInvoker)
+ {
+ }
+ /// <summary>Protected parameterless constructor to allow creation of test doubles.</summary>
+ protected EmptyServiceClient() : base()
+ {
+ }
+ /// <summary>Protected constructor to allow creation of configured clients.</summary>
+ /// <param name="configuration">The client configuration.</param>
+ protected EmptyServiceClient(ClientBaseConfiguration configuration) : base(configuration)
+ {
+ }
+
+ /// <summary>Creates a new instance of client from given <c>ClientBaseConfiguration</c>.</summary>
+ protected override EmptyServiceClient NewInstance(ClientBaseConfiguration configuration)
+ {
+ return new EmptyServiceClient(configuration);
+ }
+ }
+
+ /// <summary>Creates service definition that can be registered with a server</summary>
+ /// <param name="serviceImpl">An object implementing the server-side handling logic.</param>
+ public static grpc::ServerServiceDefinition BindService(EmptyServiceBase serviceImpl)
+ {
+ return grpc::ServerServiceDefinition.CreateBuilder().Build();
+ }
+
+ }
+}
+#endregion
diff --git a/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
index d18b9e7d5e..e8c566e167 100644
--- a/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/MetricsGrpc.cs
@@ -23,7 +23,7 @@
// Currently, 'Gauge' (i.e a metric that represents the measured value of
// something at an instant of time) is the only metric type supported by the
// service.
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.IntegrationTesting/ReportQpsScenarioServiceGrpc.cs b/src/csharp/Grpc.IntegrationTesting/ReportQpsScenarioServiceGrpc.cs
index c9c6f75c8c..60a3890f21 100644
--- a/src/csharp/Grpc.IntegrationTesting/ReportQpsScenarioServiceGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ReportQpsScenarioServiceGrpc.cs
@@ -19,7 +19,7 @@
//
// An integration test service that covers all the method signature permutations
// of unary/streaming requests/responses.
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
index 6c4b77f7ac..aec4ce7be7 100644
--- a/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/TestGrpc.cs
@@ -20,7 +20,7 @@
// An integration test service that covers all the method signature permutations
// of unary/streaming requests/responses.
//
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.IntegrationTesting/WorkerServiceGrpc.cs b/src/csharp/Grpc.IntegrationTesting/WorkerServiceGrpc.cs
index ede3ace461..85f2cfd871 100644
--- a/src/csharp/Grpc.IntegrationTesting/WorkerServiceGrpc.cs
+++ b/src/csharp/Grpc.IntegrationTesting/WorkerServiceGrpc.cs
@@ -19,7 +19,7 @@
//
// An integration test service that covers all the method signature permutations
// of unary/streaming requests/responses.
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/Grpc.Reflection/ReflectionGrpc.cs b/src/csharp/Grpc.Reflection/ReflectionGrpc.cs
index e2263cfc90..387c9fb52f 100644
--- a/src/csharp/Grpc.Reflection/ReflectionGrpc.cs
+++ b/src/csharp/Grpc.Reflection/ReflectionGrpc.cs
@@ -19,7 +19,7 @@
//
// Service exported by server reflection
//
-#pragma warning disable 1591
+#pragma warning disable 0414, 1591
#region Designer generated code
using grpc = global::Grpc.Core;
diff --git a/src/csharp/generate_proto_csharp.sh b/src/csharp/generate_proto_csharp.sh
index 1a38f860e8..e79728ff95 100755
--- a/src/csharp/generate_proto_csharp.sh
+++ b/src/csharp/generate_proto_csharp.sh
@@ -42,4 +42,4 @@ $PROTOC --plugin=$PLUGIN --csharp_out=$TESTING_DIR/CoreStats --grpc_out=$TESTING
# don't match the package names. Setting -I to the correct value src/proto
# breaks the code generation.
$PROTOC --plugin=$PLUGIN --csharp_out=$TESTING_DIR --grpc_out=$TESTING_DIR \
- -I . src/proto/grpc/testing/{control,echo_messages,empty,messages,metrics,payloads,benchmark_service,report_qps_scenario_service,worker_service,stats,test}.proto
+ -I . src/proto/grpc/testing/{control,echo_messages,empty,empty_service,messages,metrics,payloads,benchmark_service,report_qps_scenario_service,worker_service,stats,test}.proto
diff --git a/src/proto/grpc/testing/empty_service.proto b/src/proto/grpc/testing/empty_service.proto
new file mode 100644
index 0000000000..157629b7a4
--- /dev/null
+++ b/src/proto/grpc/testing/empty_service.proto
@@ -0,0 +1,23 @@
+
+// Copyright 2018 gRPC authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package grpc.testing;
+
+// A service that has zero methods.
+// See https://github.com/grpc/grpc/issues/15574
+service EmptyService {
+}