• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #region Copyright notice and license
2 
3 // Copyright 2015 gRPC authors.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 
17 #endregion
18 
19 using System.Threading.Tasks;
20 
21 namespace Grpc.Core
22 {
23     /// <summary>
24     /// Server-side handler for unary call.
25     /// </summary>
26     /// <typeparam name="TRequest">Request message type for this method.</typeparam>
27     /// <typeparam name="TResponse">Response message type for this method.</typeparam>
28     public delegate Task<TResponse> UnaryServerMethod<TRequest, TResponse>(TRequest request, ServerCallContext context)
29         where TRequest : class
30         where TResponse : class;
31 
32     /// <summary>
33     /// Server-side handler for client streaming call.
34     /// </summary>
35     /// <typeparam name="TRequest">Request message type for this method.</typeparam>
36     /// <typeparam name="TResponse">Response message type for this method.</typeparam>
37     public delegate Task<TResponse> ClientStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, ServerCallContext context)
38         where TRequest : class
39         where TResponse : class;
40 
41     /// <summary>
42     /// Server-side handler for server streaming call.
43     /// </summary>
44     /// <typeparam name="TRequest">Request message type for this method.</typeparam>
45     /// <typeparam name="TResponse">Response message type for this method.</typeparam>
46     public delegate Task ServerStreamingServerMethod<TRequest, TResponse>(TRequest request, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
47         where TRequest : class
48         where TResponse : class;
49 
50     /// <summary>
51     /// Server-side handler for bidi streaming call.
52     /// </summary>
53     /// <typeparam name="TRequest">Request message type for this method.</typeparam>
54     /// <typeparam name="TResponse">Response message type for this method.</typeparam>
55     public delegate Task DuplexStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
56         where TRequest : class
57         where TResponse : class;
58 }
59