mirror of https://github.com/grpc/grpc.git
parent
3e4cdf20b0
commit
431c5306ba
14 changed files with 213 additions and 338 deletions
@ -1,55 +0,0 @@ |
|||||||
Pod::Spec.new do |s| |
|
||||||
s.name = 'RemoteTest' |
|
||||||
s.version = '0.0.1' |
|
||||||
s.license = 'Apache License, Version 2.0' |
|
||||||
s.authors = { 'gRPC contributors' => 'grpc-io@googlegroups.com' } |
|
||||||
s.homepage = 'https://grpc.io/' |
|
||||||
s.summary = 'RemoteTest example' |
|
||||||
s.source = { :git => 'https://github.com/grpc/grpc.git' } |
|
||||||
|
|
||||||
s.ios.deployment_target = '7.1' |
|
||||||
s.osx.deployment_target = '10.9' |
|
||||||
|
|
||||||
# Run protoc with the Objective-C and gRPC plugins to generate protocol messages and gRPC clients. |
|
||||||
s.dependency "!ProtoCompiler-gRPCPlugin" |
|
||||||
|
|
||||||
repo_root = '../../../..' |
|
||||||
bin_dir = "#{repo_root}/bins/$CONFIG" |
|
||||||
|
|
||||||
protoc = "#{bin_dir}/protobuf/protoc" |
|
||||||
well_known_types_dir = "#{repo_root}/third_party/protobuf/src" |
|
||||||
plugin = "#{bin_dir}/grpc_objective_c_plugin" |
|
||||||
|
|
||||||
s.prepare_command = <<-CMD |
|
||||||
#{protoc} \ |
|
||||||
--plugin=protoc-gen-grpc=#{plugin} \ |
|
||||||
--objc_out=. \ |
|
||||||
--grpc_out=. \ |
|
||||||
-I . \ |
|
||||||
-I #{well_known_types_dir} \ |
|
||||||
*.proto |
|
||||||
CMD |
|
||||||
|
|
||||||
s.subspec 'Messages' do |ms| |
|
||||||
ms.source_files = '**/*.pbobjc.{h,m}' |
|
||||||
ms.header_mappings_dir = '.' |
|
||||||
ms.requires_arc = false |
|
||||||
ms.dependency 'Protobuf' |
|
||||||
end |
|
||||||
|
|
||||||
s.subspec 'Services' do |ss| |
|
||||||
ss.source_files = '**/*.pbrpc.{h,m}' |
|
||||||
ss.header_mappings_dir = '.' |
|
||||||
ss.requires_arc = true |
|
||||||
ss.dependency 'gRPC-ProtoRPC' |
|
||||||
ss.dependency "#{s.name}/Messages" |
|
||||||
end |
|
||||||
|
|
||||||
s.pod_target_xcconfig = { |
|
||||||
# This is needed by all pods that depend on Protobuf: |
|
||||||
'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1', |
|
||||||
# This is needed by all pods that depend on gRPC-RxLibrary: |
|
||||||
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES', |
|
||||||
} |
|
||||||
|
|
||||||
end |
|
@ -1,118 +0,0 @@ |
|||||||
// Copyright 2015 gRPC authors. |
|
||||||
// |
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
// you may not use this file except in compliance with the License. |
|
||||||
// You may obtain a copy of the License at |
|
||||||
// |
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
// |
|
||||||
// Unless required by applicable law or agreed to in writing, software |
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
// See the License for the specific language governing permissions and |
|
||||||
// limitations under the License. |
|
||||||
|
|
||||||
// Message definitions to be used by integration test service definitions. |
|
||||||
|
|
||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
package grpc.testing; |
|
||||||
|
|
||||||
option objc_class_prefix = "RMT"; |
|
||||||
|
|
||||||
// The type of payload that should be returned. |
|
||||||
enum PayloadType { |
|
||||||
// Compressable text format. |
|
||||||
COMPRESSABLE = 0; |
|
||||||
|
|
||||||
// Uncompressable binary format. |
|
||||||
UNCOMPRESSABLE = 1; |
|
||||||
|
|
||||||
// Randomly chosen from all other formats defined in this enum. |
|
||||||
RANDOM = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// A block of data, to simply increase gRPC message size. |
|
||||||
message Payload { |
|
||||||
// The type of data in body. |
|
||||||
PayloadType type = 1; |
|
||||||
// Primary contents of payload. |
|
||||||
bytes body = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// Unary request. |
|
||||||
message SimpleRequest { |
|
||||||
// Desired payload type in the response from the server. |
|
||||||
// If response_type is RANDOM, server randomly chooses one from other formats. |
|
||||||
PayloadType response_type = 1; |
|
||||||
|
|
||||||
// Desired payload size in the response from the server. |
|
||||||
// If response_type is COMPRESSABLE, this denotes the size before compression. |
|
||||||
int32 response_size = 2; |
|
||||||
|
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 3; |
|
||||||
|
|
||||||
// Whether SimpleResponse should include username. |
|
||||||
bool fill_username = 4; |
|
||||||
|
|
||||||
// Whether SimpleResponse should include OAuth scope. |
|
||||||
bool fill_oauth_scope = 5; |
|
||||||
} |
|
||||||
|
|
||||||
// Unary response, as configured by the request. |
|
||||||
message SimpleResponse { |
|
||||||
// Payload to increase message size. |
|
||||||
Payload payload = 1; |
|
||||||
// The user the request came from, for verifying authentication was |
|
||||||
// successful when the client expected it. |
|
||||||
string username = 2; |
|
||||||
// OAuth scope. |
|
||||||
string oauth_scope = 3; |
|
||||||
} |
|
||||||
|
|
||||||
// Client-streaming request. |
|
||||||
message StreamingInputCallRequest { |
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 1; |
|
||||||
|
|
||||||
// Not expecting any payload from the response. |
|
||||||
} |
|
||||||
|
|
||||||
// Client-streaming response. |
|
||||||
message StreamingInputCallResponse { |
|
||||||
// Aggregated size of payloads received from the client. |
|
||||||
int32 aggregated_payload_size = 1; |
|
||||||
} |
|
||||||
|
|
||||||
// Configuration for a particular response. |
|
||||||
message ResponseParameters { |
|
||||||
// Desired payload sizes in responses from the server. |
|
||||||
// If response_type is COMPRESSABLE, this denotes the size before compression. |
|
||||||
int32 size = 1; |
|
||||||
|
|
||||||
// Desired interval between consecutive responses in the response stream in |
|
||||||
// microseconds. |
|
||||||
int32 interval_us = 2; |
|
||||||
} |
|
||||||
|
|
||||||
// Server-streaming request. |
|
||||||
message StreamingOutputCallRequest { |
|
||||||
// Desired payload type in the response from the server. |
|
||||||
// If response_type is RANDOM, the payload from each response in the stream |
|
||||||
// might be of different types. This is to simulate a mixed type of payload |
|
||||||
// stream. |
|
||||||
PayloadType response_type = 1; |
|
||||||
|
|
||||||
// Configuration for each expected response message. |
|
||||||
repeated ResponseParameters response_parameters = 2; |
|
||||||
|
|
||||||
// Optional input payload sent along with the request. |
|
||||||
Payload payload = 3; |
|
||||||
} |
|
||||||
|
|
||||||
// Server-streaming response, as configured by the request and parameters. |
|
||||||
message StreamingOutputCallResponse { |
|
||||||
// Payload to increase response size. |
|
||||||
Payload payload = 1; |
|
||||||
} |
|
@ -1,57 +0,0 @@ |
|||||||
// Copyright 2015 gRPC authors. |
|
||||||
// |
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
// you may not use this file except in compliance with the License. |
|
||||||
// You may obtain a copy of the License at |
|
||||||
// |
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0 |
|
||||||
// |
|
||||||
// Unless required by applicable law or agreed to in writing, software |
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
// See the License for the specific language governing permissions and |
|
||||||
// limitations under the License. |
|
||||||
|
|
||||||
// An integration test service that covers all the method signature permutations |
|
||||||
// of unary/streaming requests/responses. |
|
||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
import "google/protobuf/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(google.protobuf.Empty) returns (google.protobuf.Empty); |
|
||||||
|
|
||||||
// One request followed by one response. |
|
||||||
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); |
|
||||||
} |
|
Loading…
Reference in new issue