GRPCCallOptions.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #import <Foundation/Foundation.h>
20 
21 #import "GRPCTypes.h"
22 
23 NS_ASSUME_NONNULL_BEGIN
24 
25 @protocol GRPCInterceptorFactory;
26 
32 @interface GRPCCallOptions : NSObject <NSCopying, NSMutableCopying>
33 
34 // Call parameters
43 @property(nonatomic, copy, readonly, nullable) NSString *serverAuthority;
44 
50 @property(nonatomic, readonly) NSTimeInterval timeout;
51 
58 @property(nonatomic, readonly) BOOL flowControlEnabled;
59 
66 @property(nonatomic, copy, readonly) NSArray<id<GRPCInterceptorFactory>> *interceptorFactories;
67 
68 // OAuth2 parameters. Users of gRPC may specify one of the following two parameters.
69 
75 @property(nonatomic, copy, readonly, nullable) NSString *oauth2AccessToken;
76 
81 @property(nonatomic, readonly, nullable) id<GRPCAuthorizationProtocol> authTokenProvider;
82 
88 @property(nonatomic, copy, readonly, nullable) GRPCMetadataDictionary *initialMetadata;
89 
90 // Channel parameters; take into account of channel signature.
91 
96 @property(nonatomic, copy, readonly, nullable) NSString *userAgentPrefix;
97 
102 @property(nonatomic, copy, readonly, nullable) NSString *userAgentSuffix;
103 
108 @property(nonatomic, readonly) NSUInteger responseSizeLimit;
109 
114 @property(nonatomic, readonly) GRPCCompressionAlgorithm compressionAlgorithm;
115 
121 @property(nonatomic, readonly) BOOL retryEnabled;
122 
127 @property(nonatomic, readonly) NSTimeInterval maxRetryInterval;
128 
133 @property(nonatomic, readonly) NSTimeInterval minRetryInterval;
134 
139 @property(readonly) double retryFactor;
140 
141 // HTTP/2 keep-alive feature. The parameter \a keepaliveInterval specifies the interval between two
142 // PING frames. The parameter \a keepaliveTimeout specifies the length of the period for which the
143 // call should wait for PING ACK. If PING ACK is not received after this period, the call fails.
144 // Negative values are not allowed.
145 @property(nonatomic, readonly) NSTimeInterval keepaliveInterval;
146 @property(nonatomic, readonly) NSTimeInterval keepaliveTimeout;
147 
148 // Parameters for connection backoff. Negative values are not allowed.
149 // For details of gRPC's backoff behavior, refer to
150 // https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md
151 @property(nonatomic, readonly) NSTimeInterval connectMinTimeout;
152 @property(nonatomic, readonly) NSTimeInterval connectInitialBackoff;
153 @property(nonatomic, readonly) NSTimeInterval connectMaxBackoff;
154 
159 @property(nonatomic, copy, readonly, nullable) GRPCMetadataDictionary *additionalChannelArgs;
160 
161 // Parameters for SSL authentication.
162 
167 @property(nonatomic, copy, readonly, nullable) NSString *PEMRootCertificates;
168 
172 @property(nonatomic, copy, readonly, nullable) NSString *PEMPrivateKey;
173 
177 @property(nonatomic, copy, readonly, nullable) NSString *PEMCertificateChain;
178 
185 @property(nonatomic, readonly) GRPCTransportType transportType;
186 
195 @property(nonatomic, readonly) GRPCTransportID transport;
196 
200 @property(nonatomic, copy, readonly, nullable) NSString *hostNameOverride;
201 
206 @property(nonatomic, copy, readonly, nullable) NSString *channelPoolDomain;
207 
214 @property(nonatomic, readonly) NSUInteger channelID;
215 
219 @property(nonatomic, readonly) NSUInteger channelOptionsHash;
220 
224 - (BOOL)hasChannelOptionsEqualTo:(GRPCCallOptions *)callOptions;
225 
226 @end
227 
232 @interface GRPCMutableCallOptions : GRPCCallOptions <NSCopying, NSMutableCopying>
233 
234 // Call parameters
243 @property(nonatomic, copy, readwrite, nullable) NSString *serverAuthority;
244 
251 @property(nonatomic, readwrite) NSTimeInterval timeout;
252 
264 @property(nonatomic, readwrite) BOOL flowControlEnabled;
265 
272 @property(nonatomic, copy, readwrite) NSArray<id<GRPCInterceptorFactory>> *interceptorFactories;
273 
274 // OAuth2 parameters. Users of gRPC may specify one of the following two parameters.
275 
281 @property(nonatomic, copy, readwrite, nullable) NSString *oauth2AccessToken;
282 
287 @property(nonatomic, readwrite, nullable) id<GRPCAuthorizationProtocol> authTokenProvider;
288 
294 @property(nonatomic, nonatomic, copy, readwrite, nullable) GRPCMetadataDictionary *initialMetadata;
295 
296 // Channel parameters; take into account of channel signature.
297 
302 @property(nonatomic, copy, readwrite, nullable) NSString *userAgentPrefix;
303 
308 @property(nonatomic, copy, readwrite, nullable) NSString *userAgentSuffix;
309 
314 @property(nonatomic, readwrite) NSUInteger responseSizeLimit;
315 
320 @property(nonatomic, readwrite) GRPCCompressionAlgorithm compressionAlgorithm;
321 
327 @property(nonatomic, readwrite) BOOL retryEnabled;
328 
333 @property(nonatomic, readwrite) NSTimeInterval maxRetryInterval;
334 
339 @property(nonatomic, readwrite) NSTimeInterval minRetryInterval;
340 
345 @property(nonatomic, readwrite) double retryFactor;
346 
347 // HTTP/2 keep-alive feature. The parameter \a keepaliveInterval specifies the interval between two
348 // PING frames. The parameter \a keepaliveTimeout specifies the length of the period for which the
349 // call should wait for PING ACK. If PING ACK is not received after this period, the call fails.
350 // Negative values are invalid; setting these parameters to negative value will reset the
351 // corresponding parameter to 0.
352 @property(nonatomic, readwrite) NSTimeInterval keepaliveInterval;
353 @property(nonatomic, readwrite) NSTimeInterval keepaliveTimeout;
354 
355 // Parameters for connection backoff. Negative value is invalid; setting the parameters to negative
356 // value will reset corresponding parameter to 0.
357 // For details of gRPC's backoff behavior, refer to
358 // https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md
359 @property(nonatomic, readwrite) NSTimeInterval connectMinTimeout;
360 @property(nonatomic, readwrite) NSTimeInterval connectInitialBackoff;
361 @property(nonatomic, readwrite) NSTimeInterval connectMaxBackoff;
362 
367 @property(nonatomic, copy, readwrite, nullable) GRPCMetadataDictionary *additionalChannelArgs;
368 
369 // Parameters for SSL authentication.
370 
375 @property(nonatomic, copy, readwrite, nullable) NSString *PEMRootCertificates;
376 
380 @property(nonatomic, copy, readwrite, nullable) NSString *PEMPrivateKey;
381 
385 @property(nonatomic, copy, readwrite, nullable) NSString *PEMCertificateChain;
386 
393 @property(nonatomic, readwrite) GRPCTransportType transportType;
394 
403 @property(nonatomic, readwrite) GRPCTransportID transport;
404 
408 @property(nonatomic, copy, readwrite, nullable) NSString *hostNameOverride;
409 
416 @property(nonatomic, copy, readwrite, nullable) NSString *channelPoolDomain;
417 
422 @property(nonatomic, readwrite) NSUInteger channelID;
423 
424 @end
425 
426 NS_ASSUME_NONNULL_END
GRPCCallOptions::keepaliveTimeout
NSTimeInterval keepaliveTimeout
Definition: GRPCCallOptions.h:146
GRPCCallOptions::PEMRootCertificates
NSString * PEMRootCertificates
Definition: GRPCCallOptions.h:167
GRPCCallOptions::timeout
NSTimeInterval timeout
Definition: GRPCCallOptions.h:50
GRPCCallOptions::authTokenProvider
id< GRPCAuthorizationProtocol > authTokenProvider
Definition: GRPCCallOptions.h:81
GRPCCallOptions::transportType
GRPCTransportType transportType
Definition: GRPCCallOptions.h:185
GRPCCallOptions
Definition: GRPCCallOptions.h:32
GRPCTypes.h
copy
static int copy(grpc_slice_buffer *input, grpc_slice_buffer *output)
Definition: message_compress.cc:145
GRPCCallOptions::connectMinTimeout
NSTimeInterval connectMinTimeout
Definition: GRPCCallOptions.h:151
GRPCCallOptions::minRetryInterval
NSTimeInterval minRetryInterval
Definition: GRPCCallOptions.h:133
GRPCCallOptions::interceptorFactories
NSArray< id< GRPCInterceptorFactory > > * interceptorFactories
Definition: GRPCCallOptions.h:66
BOOL
int BOOL
Definition: undname.c:46
GRPCInterceptorFactory-p
Definition: GRPCInterceptor.h:164
GRPCCallOptions::connectMaxBackoff
NSTimeInterval connectMaxBackoff
Definition: GRPCCallOptions.h:153
GRPCMutableCallOptions
Definition: GRPCCallOptions.h:232
GRPCCallOptions::userAgentSuffix
NSString * userAgentSuffix
Definition: GRPCCallOptions.h:102
GRPCCallOptions::connectInitialBackoff
NSTimeInterval connectInitialBackoff
Definition: GRPCCallOptions.h:152
GRPCCallOptions::retryEnabled
BOOL retryEnabled
Definition: GRPCCallOptions.h:121
GRPCCallOptions::flowControlEnabled
BOOL flowControlEnabled
Definition: GRPCCallOptions.h:58
GRPCCallOptions::initialMetadata
GRPCMetadataDictionary * initialMetadata
Definition: GRPCCallOptions.h:88
GRPCCallOptions::oauth2AccessToken
NSString * oauth2AccessToken
Definition: GRPCCallOptions.h:75
GRPCCallOptions::retryFactor
double retryFactor
Definition: GRPCCallOptions.h:139
GRPCCallOptions::PEMPrivateKey
NSString * PEMPrivateKey
Definition: GRPCCallOptions.h:172
GRPCTransportID
char *_Nonnull GRPCTransportID
Definition: GRPCTypes.h:174
GRPCCallOptions::responseSizeLimit
NSUInteger responseSizeLimit
Definition: GRPCCallOptions.h:108
GRPCCallOptions::userAgentPrefix
NSString * userAgentPrefix
Definition: GRPCCallOptions.h:96
GRPCMetadataDictionary
NSDictionary< NSString *, id > GRPCMetadataDictionary
Definition: GRPCTypes.h:190
GRPCCallOptions::channelID
NSUInteger channelID
Definition: GRPCCallOptions.h:214
GRPCCallOptions::PEMCertificateChain
NSString * PEMCertificateChain
Definition: GRPCCallOptions.h:177
GRPCCallOptions::channelOptionsHash
NSUInteger channelOptionsHash
Definition: GRPCCallOptions.h:219
GRPCCallOptions::additionalChannelArgs
GRPCMetadataDictionary * additionalChannelArgs
Definition: GRPCCallOptions.h:159
GRPCCallOptions::keepaliveInterval
NSTimeInterval keepaliveInterval
Definition: GRPCCallOptions.h:145
GRPCCallOptions::hostNameOverride
NSString * hostNameOverride
Definition: GRPCCallOptions.h:200
GRPCCallOptions::channelPoolDomain
NSString * channelPoolDomain
Definition: GRPCCallOptions.h:206
GRPCCallOptions::compressionAlgorithm
GRPCCompressionAlgorithm compressionAlgorithm
Definition: GRPCCallOptions.h:114
GRPCCallOptions::maxRetryInterval
NSTimeInterval maxRetryInterval
Definition: GRPCCallOptions.h:127
GRPCCallOptions::transport
GRPCTransportID transport
Definition: GRPCCallOptions.h:195
GRPCCallOptions::serverAuthority
NSString * serverAuthority
Definition: GRPCCallOptions.h:43


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:48