xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/examples/RemoteTestClient/test.proto (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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