Exemplo n.º 1
0
        /// <summary>Snippet for Egress</summary>
        public async Task Egress()
        {
            // Snippet: Egress(CallSettings, BidirectionalStreamingSettings)
            // Create client
            TetherClient tetherClient = TetherClient.Create();

            // Initialize streaming call, retrieving the stream object
            TetherClient.EgressStream response = tetherClient.Egress();

            // Sending requests and retrieving responses can be arbitrarily interleaved
            // Exact sequence will depend on client/server behavior

            // Create task to do something with responses from server
            Task responseHandlerTask = Task.Run(async() =>
            {
                // Note that C# 8 code can use await foreach
                AsyncResponseStream <EgressRequest> responseStream = response.GetResponseStream();
                while (await responseStream.MoveNextAsync())
                {
                    EgressRequest responseItem = responseStream.Current;
                    // Do something with streamed response
                }
                // The response stream has completed
            });

            // Send requests to the server
            bool done = false;

            while (!done)
            {
                // Initialize a request
                EgressResponse request = new EgressResponse
                {
                    Id           = "",
                    HttpResponse = new HttpResponse(),
                    Status       = new Status(),
                    Project      = "",
                    TraceId      = "",
                    Endpoint     = TetherEndpoint.Unspecified,
                    Name         = "",
                };
                // Stream a request to the server
                await response.WriteAsync(request);

                // Set "done" to true when sending requests is complete
            }

            // Complete writing requests to the stream
            await response.WriteCompleteAsync();

            // Await the response handler
            // This will complete once all server responses have been processed
            await responseHandlerTask;
            // End snippet
        }
Exemplo n.º 2
0
 public override stt::Task WriteAsync(EgressResponse message, grpccore::WriteOptions options) =>
 _writeBuffer.WriteAsync(ModifyRequest(message), options);
Exemplo n.º 3
0
 public override stt::Task WriteAsync(EgressResponse message) => _writeBuffer.WriteAsync(ModifyRequest(message));
Exemplo n.º 4
0
 private EgressResponse ModifyRequest(EgressResponse request)
 {
     _service.Modify_EgressResponseRequest(ref request);
     return(request);
 }
Exemplo n.º 5
0
 partial void Modify_EgressResponseRequest(ref EgressResponse request);