aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/csharp/Grpc.Examples/MathGrpc.cs
blob: 2546fd220de0eea34ff422041c1971ce2a0e5ae0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: math.proto
#region Designer generated code

using System;
using System.Threading;
using System.Threading.Tasks;
using Grpc.Core;

namespace math {
  public static class Math
  {
    static readonly string __ServiceName = "math.Math";

    static readonly Marshaller<DivArgs> __Marshaller_DivArgs = Marshallers.Create((arg) => arg.ToByteArray(), DivArgs.ParseFrom);
    static readonly Marshaller<DivReply> __Marshaller_DivReply = Marshallers.Create((arg) => arg.ToByteArray(), DivReply.ParseFrom);
    static readonly Marshaller<FibArgs> __Marshaller_FibArgs = Marshallers.Create((arg) => arg.ToByteArray(), FibArgs.ParseFrom);
    static readonly Marshaller<Num> __Marshaller_Num = Marshallers.Create((arg) => arg.ToByteArray(), Num.ParseFrom);

    static readonly Method<DivArgs, DivReply> __Method_Div = new Method<DivArgs, DivReply>(
        MethodType.Unary,
        "Div",
        __Marshaller_DivArgs,
        __Marshaller_DivReply);

    static readonly Method<DivArgs, DivReply> __Method_DivMany = new Method<DivArgs, DivReply>(
        MethodType.DuplexStreaming,
        "DivMany",
        __Marshaller_DivArgs,
        __Marshaller_DivReply);

    static readonly Method<FibArgs, Num> __Method_Fib = new Method<FibArgs, Num>(
        MethodType.ServerStreaming,
        "Fib",
        __Marshaller_FibArgs,
        __Marshaller_Num);

    static readonly Method<Num, Num> __Method_Sum = new Method<Num, Num>(
        MethodType.ClientStreaming,
        "Sum",
        __Marshaller_Num,
        __Marshaller_Num);

    // client-side stub interface
    public interface IMathClient
    {
      DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken));
      Task<DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken));
      AsyncDuplexStreamingCall<DivArgs, DivReply> DivMany(CancellationToken token = default(CancellationToken));
      AsyncServerStreamingCall<Num> Fib(FibArgs request, CancellationToken token = default(CancellationToken));
      AsyncClientStreamingCall<Num, Num> Sum(CancellationToken token = default(CancellationToken));
    }

    // server-side interface
    public interface IMath
    {
      Task<DivReply> Div(ServerCallContext context, DivArgs request);
      Task DivMany(ServerCallContext context, IAsyncStreamReader<DivArgs> requestStream, IServerStreamWriter<DivReply> responseStream);
      Task Fib(ServerCallContext context, FibArgs request, IServerStreamWriter<Num> responseStream);
      Task<Num> Sum(ServerCallContext context, IAsyncStreamReader<Num> requestStream);
    }

    // client stub
    public class MathClient : AbstractStub<MathClient, StubConfiguration>, IMathClient
    {
      public MathClient(Channel channel) : this(channel, StubConfiguration.Default)
      {
      }
      public MathClient(Channel channel, StubConfiguration config) : base(channel, config)
      {
      }
      public DivReply Div(DivArgs request, CancellationToken token = default(CancellationToken))
      {
        var call = CreateCall(__ServiceName, __Method_Div);
        return Calls.BlockingUnaryCall(call, request, token);
      }
      public Task<DivReply> DivAsync(DivArgs request, CancellationToken token = default(CancellationToken))
      {
        var call = CreateCall(__ServiceName, __Method_Div);
        return Calls.AsyncUnaryCall(call, request, token);
      }
      public AsyncDuplexStreamingCall<DivArgs, DivReply> DivMany(CancellationToken token = default(CancellationToken))
      {
        var call = CreateCall(__ServiceName, __Method_DivMany);
        return Calls.AsyncDuplexStreamingCall(call, token);
      }
      public AsyncServerStreamingCall<Num> Fib(FibArgs request, CancellationToken token = default(CancellationToken))
      {
        var call = CreateCall(__ServiceName, __Method_Fib);
        return Calls.AsyncServerStreamingCall(call, request, token);
      }
      public AsyncClientStreamingCall<Num, Num> Sum(CancellationToken token = default(CancellationToken))
      {
        var call = CreateCall(__ServiceName, __Method_Sum);
        return Calls.AsyncClientStreamingCall(call, token);
      }
    }

    // creates service definition that can be registered with a server
    public static ServerServiceDefinition BindService(IMath serviceImpl)
    {
      return ServerServiceDefinition.CreateBuilder(__ServiceName)
          .AddMethod(__Method_Div, serviceImpl.Div)
          .AddMethod(__Method_DivMany, serviceImpl.DivMany)
          .AddMethod(__Method_Fib, serviceImpl.Fib)
          .AddMethod(__Method_Sum, serviceImpl.Sum).Build();
    }

    // creates a new client stub
    public static IMathClient NewStub(Channel channel)
    {
      return new MathClient(channel);
    }

    // creates a new client stub
    public static IMathClient NewStub(Channel channel, StubConfiguration config)
    {
      return new MathClient(channel, config);
    }
  }
}
#endregion