| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | // Copyright 2015, Google Inc.// All rights reserved.//// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions are// met:////     * Redistributions of source code must retain the above copyright// notice, this list of conditions and the following disclaimer.//     * Redistributions in binary form must reproduce the above// copyright notice, this list of conditions and the following disclaimer// in the documentation and/or other materials provided with the// distribution.//     * Neither the name of Google Inc. nor the names of its// contributors may be used to endorse or promote products derived from// this software without specific prior written permission.//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.// An integration test service that covers all the method signature permutations// of unary/streaming requests/responses.syntax = "proto3";import "empty.proto";import "messages.proto";package grpc.testing;option objc_class_prefix = "RMT";// 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.  // TODO(Issue 527): Describe required server behavior.  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);}
 |