1*cc02d7e2SAndroid Build Coastguard Worker// Copyright 2015 gRPC authors. 2*cc02d7e2SAndroid Build Coastguard Worker// 3*cc02d7e2SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*cc02d7e2SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*cc02d7e2SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*cc02d7e2SAndroid Build Coastguard Worker// 7*cc02d7e2SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*cc02d7e2SAndroid Build Coastguard Worker// 9*cc02d7e2SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*cc02d7e2SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*cc02d7e2SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*cc02d7e2SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*cc02d7e2SAndroid Build Coastguard Worker// limitations under the License. 14*cc02d7e2SAndroid Build Coastguard Worker 15*cc02d7e2SAndroid Build Coastguard Worker// An integration test service that covers all the method signature permutations 16*cc02d7e2SAndroid Build Coastguard Worker// of unary/streaming requests/responses. 17*cc02d7e2SAndroid Build Coastguard Workersyntax = "proto3"; 18*cc02d7e2SAndroid Build Coastguard Worker 19*cc02d7e2SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 20*cc02d7e2SAndroid Build Coastguard Workerimport "src/objective-c/examples/RemoteTestClient/messages.proto"; 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard Workerpackage grpc.testing; 23*cc02d7e2SAndroid Build Coastguard Worker 24*cc02d7e2SAndroid Build Coastguard Workeroption objc_class_prefix = "RMT"; 25*cc02d7e2SAndroid Build Coastguard Worker 26*cc02d7e2SAndroid Build Coastguard Worker// A simple service to test the various types of RPCs and experiment with 27*cc02d7e2SAndroid Build Coastguard Worker// performance with various types of payload. 28*cc02d7e2SAndroid Build Coastguard Workerservice TestService { 29*cc02d7e2SAndroid Build Coastguard Worker // One empty request followed by one empty response. 30*cc02d7e2SAndroid Build Coastguard Worker rpc EmptyCall(google.protobuf.Empty) returns (google.protobuf.Empty); 31*cc02d7e2SAndroid Build Coastguard Worker 32*cc02d7e2SAndroid Build Coastguard Worker // One request followed by one response. 33*cc02d7e2SAndroid Build Coastguard Worker rpc UnaryCall(SimpleRequest) returns (SimpleResponse); 34*cc02d7e2SAndroid Build Coastguard Worker 35*cc02d7e2SAndroid Build Coastguard Worker // One request followed by a sequence of responses (streamed download). 36*cc02d7e2SAndroid Build Coastguard Worker // The server returns the payload with client desired type and sizes. 37*cc02d7e2SAndroid Build Coastguard Worker rpc StreamingOutputCall(StreamingOutputCallRequest) 38*cc02d7e2SAndroid Build Coastguard Worker returns (stream StreamingOutputCallResponse); 39*cc02d7e2SAndroid Build Coastguard Worker 40*cc02d7e2SAndroid Build Coastguard Worker // A sequence of requests followed by one response (streamed upload). 41*cc02d7e2SAndroid Build Coastguard Worker // The server returns the aggregated size of client payload as the result. 42*cc02d7e2SAndroid Build Coastguard Worker rpc StreamingInputCall(stream StreamingInputCallRequest) 43*cc02d7e2SAndroid Build Coastguard Worker returns (StreamingInputCallResponse); 44*cc02d7e2SAndroid Build Coastguard Worker 45*cc02d7e2SAndroid Build Coastguard Worker // A sequence of requests with each request served by the server immediately. 46*cc02d7e2SAndroid Build Coastguard Worker // As one request could lead to multiple responses, this interface 47*cc02d7e2SAndroid Build Coastguard Worker // demonstrates the idea of full duplexing. 48*cc02d7e2SAndroid Build Coastguard Worker rpc FullDuplexCall(stream StreamingOutputCallRequest) 49*cc02d7e2SAndroid Build Coastguard Worker returns (stream StreamingOutputCallResponse); 50*cc02d7e2SAndroid Build Coastguard Worker 51*cc02d7e2SAndroid Build Coastguard Worker // A sequence of requests followed by a sequence of responses. 52*cc02d7e2SAndroid Build Coastguard Worker // The server buffers all the client requests and then serves them in order. A 53*cc02d7e2SAndroid Build Coastguard Worker // stream of responses are returned to the client when the server starts with 54*cc02d7e2SAndroid Build Coastguard Worker // first request. 55*cc02d7e2SAndroid Build Coastguard Worker rpc HalfDuplexCall(stream StreamingOutputCallRequest) 56*cc02d7e2SAndroid Build Coastguard Worker returns (stream StreamingOutputCallResponse); 57*cc02d7e2SAndroid Build Coastguard Worker} 58