blob: ad0eef9f272b0296129a2019ed4ba26aa503c07d [file] [log] [blame]
Jan Tattermuscha7fff862015-02-13 11:08:08 -08001#region Copyright notice and license
2
Jan Tattermusch7897ae92017-06-07 22:57:36 +02003// Copyright 2015 gRPC authors.
Craig Tiller190d3602015-02-18 09:23:38 -08004//
Jan Tattermusch7897ae92017-06-07 22:57:36 +02005// 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
Craig Tiller190d3602015-02-18 09:23:38 -08008//
Jan Tattermusch7897ae92017-06-07 22:57:36 +02009// http://www.apache.org/licenses/LICENSE-2.0
Craig Tiller190d3602015-02-18 09:23:38 -080010//
Jan Tattermusch7897ae92017-06-07 22:57:36 +020011// 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.
Jan Tattermuscha7fff862015-02-13 11:08:08 -080016
17#endregion
18
Jan Tattermuscha7608b02015-02-03 17:54:38 -080019using System.Threading.Tasks;
20
Jan Tattermusch30868622015-02-19 09:22:33 -080021namespace Grpc.Core
Jan Tattermuscha7608b02015-02-03 17:54:38 -080022{
23 /// <summary>
Jan Tattermuscha5272b62015-04-30 11:56:46 -070024 /// Server-side handler for unary call.
Jan Tattermuscha7608b02015-02-03 17:54:38 -080025 /// </summary>
Jan Tattermusch12855fc2015-08-24 16:43:23 -070026 /// <typeparam name="TRequest">Request message type for this method.</typeparam>
27 /// <typeparam name="TResponse">Response message type for this method.</typeparam>
Jan Tattermusch25bb2ef2015-07-21 12:15:53 -070028 public delegate Task<TResponse> UnaryServerMethod<TRequest, TResponse>(TRequest request, ServerCallContext context)
Jan Tattermuschbdb1b482015-05-06 14:46:25 -070029 where TRequest : class
30 where TResponse : class;
Jan Tattermuscha7608b02015-02-03 17:54:38 -080031
Jan Tattermuscha5272b62015-04-30 11:56:46 -070032 /// <summary>
33 /// Server-side handler for client streaming call.
34 /// </summary>
Jan Tattermusch12855fc2015-08-24 16:43:23 -070035 /// <typeparam name="TRequest">Request message type for this method.</typeparam>
36 /// <typeparam name="TResponse">Response message type for this method.</typeparam>
Jan Tattermusch25bb2ef2015-07-21 12:15:53 -070037 public delegate Task<TResponse> ClientStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, ServerCallContext context)
Jan Tattermuschbdb1b482015-05-06 14:46:25 -070038 where TRequest : class
39 where TResponse : class;
Jan Tattermuscha7608b02015-02-03 17:54:38 -080040
Jan Tattermuscha5272b62015-04-30 11:56:46 -070041 /// <summary>
42 /// Server-side handler for server streaming call.
43 /// </summary>
Jan Tattermusch12855fc2015-08-24 16:43:23 -070044 /// <typeparam name="TRequest">Request message type for this method.</typeparam>
45 /// <typeparam name="TResponse">Response message type for this method.</typeparam>
Jan Tattermusch25bb2ef2015-07-21 12:15:53 -070046 public delegate Task ServerStreamingServerMethod<TRequest, TResponse>(TRequest request, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
Jan Tattermuschbdb1b482015-05-06 14:46:25 -070047 where TRequest : class
48 where TResponse : class;
Jan Tattermuscha7608b02015-02-03 17:54:38 -080049
Jan Tattermuscha5272b62015-04-30 11:56:46 -070050 /// <summary>
51 /// Server-side handler for bidi streaming call.
52 /// </summary>
Jan Tattermusch12855fc2015-08-24 16:43:23 -070053 /// <typeparam name="TRequest">Request message type for this method.</typeparam>
54 /// <typeparam name="TResponse">Response message type for this method.</typeparam>
Jan Tattermusch25bb2ef2015-07-21 12:15:53 -070055 public delegate Task DuplexStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
Jan Tattermuschbdb1b482015-05-06 14:46:25 -070056 where TRequest : class
57 where TResponse : class;
Jan Tattermuscha7608b02015-02-03 17:54:38 -080058}