| 123456789101112131415161718192021222324252627282930313233343536373839404142 | // An integration test service that covers all the method signature permutations// of unary/streaming requests/responses.syntax = "proto2";import "test/cpp/interop/empty.proto";import "test/cpp/interop/messages.proto";package grpc.testing;// A simple service to test the various types of RPCs and experiment with// performance with various types of payload.service TestService {  // One empty request followed by one empty response.  rpc EmptyCall(grpc.testing.Empty) returns (grpc.testing.Empty);  // One request followed by one response.  // The server returns the client payload as-is.  rpc UnaryCall(SimpleRequest) returns (SimpleResponse);  // One request followed by a sequence of responses (streamed download).  // The server returns the payload with client desired type and sizes.  rpc StreamingOutputCall(StreamingOutputCallRequest)      returns (stream StreamingOutputCallResponse);  // A sequence of requests followed by one response (streamed upload).  // The server returns the aggregated size of client payload as the result.  rpc StreamingInputCall(stream StreamingInputCallRequest)      returns (StreamingInputCallResponse);  // A sequence of requests with each request served by the server immediately.  // As one request could lead to multiple responses, this interface  // demonstrates the idea of full duplexing.  rpc FullDuplexCall(stream StreamingOutputCallRequest)      returns (stream StreamingOutputCallResponse);  // A sequence of requests followed by a sequence of responses.  // The server buffers all the client requests and then serves them in order. A  // stream of responses are returned to the client when the server starts with  // first request.  rpc HalfDuplexCall(stream StreamingOutputCallRequest)      returns (stream StreamingOutputCallResponse);}
 |