Add isChannelOptionsEqualTo: to GRPCCallOptions

pull/16190/head
Muxi Yan 6 years ago
parent d47f4b4c23
commit f48c90606f
  1. 5
      src/objective-c/GRPCClient/GRPCCallOptions.h
  2. 40
      src/objective-c/GRPCClient/GRPCCallOptions.m
  3. 38
      src/objective-c/GRPCClient/private/GRPCChannelPool.m

@ -188,6 +188,11 @@ typedef NS_ENUM(NSInteger, GRPCTransportType) {
*/
@property(readonly) NSUInteger channelID;
/**
* Return if the channel options are equal to another object.
*/
- (BOOL)isChannelOptionsEqualTo:(GRPCCallOptions *)callOptions;
@end
@interface GRPCMutableCallOptions : GRPCCallOptions<NSCopying, NSMutableCopying>

@ -227,6 +227,46 @@ static NSUInteger kDefaultChannelID = 0;
return newOptions;
}
- (BOOL)isChannelOptionsEqualTo:(GRPCCallOptions *)callOptions {
if (!(callOptions.userAgentPrefix == _userAgentPrefix ||
[callOptions.userAgentPrefix isEqualToString:_userAgentPrefix]))
return NO;
if (!(callOptions.responseSizeLimit == _responseSizeLimit)) return NO;
if (!(callOptions.compressAlgorithm == _compressAlgorithm)) return NO;
if (!(callOptions.enableRetry == _enableRetry)) return NO;
if (!(callOptions.keepaliveInterval == _keepaliveInterval)) return NO;
if (!(callOptions.keepaliveTimeout == _keepaliveTimeout)) return NO;
if (!(callOptions.connectMinTimeout == _connectMinTimeout)) return NO;
if (!(callOptions.connectInitialBackoff == _connectInitialBackoff)) return NO;
if (!(callOptions.connectMaxBackoff == _connectMaxBackoff)) return NO;
if (!(callOptions.additionalChannelArgs == _additionalChannelArgs ||
[callOptions.additionalChannelArgs
isEqualToDictionary:_additionalChannelArgs]))
return NO;
if (!(callOptions.PEMRootCertificates == _PEMRootCertificates ||
[callOptions.PEMRootCertificates isEqualToString:_PEMRootCertificates]))
return NO;
if (!(callOptions.PEMPrivateKey == _PEMPrivateKey ||
[callOptions.PEMPrivateKey isEqualToString:_PEMPrivateKey]))
return NO;
if (!(callOptions.PEMCertChain == _PEMCertChain ||
[callOptions.PEMCertChain isEqualToString:_PEMCertChain]))
return NO;
if (!(callOptions.hostNameOverride == _hostNameOverride ||
[callOptions.hostNameOverride isEqualToString:_hostNameOverride]))
return NO;
if (!(callOptions.transportType == _transportType)) return NO;
if (!(callOptions.logContext == _logContext ||
[callOptions.logContext isEqual:_logContext]))
return NO;
if (!(callOptions.channelPoolDomain == _channelPoolDomain ||
[callOptions.channelPoolDomain isEqualToString:_channelPoolDomain]))
return NO;
if (!(callOptions.channelID == _channelID)) return NO;
return YES;
}
@end
@implementation GRPCMutableCallOptions

@ -68,8 +68,6 @@ extern const char *kCFStreamVarName;
return [GRPCCronetChannelFactory sharedInstance];
case GRPCTransportTypeInsecure:
return [GRPCInsecureChannelFactory sharedInstance];
default:
GPR_UNREACHABLE_CODE(return nil);
}
}
@ -147,41 +145,7 @@ extern const char *kCFStreamVarName;
NSAssert([object isKindOfClass:[GRPCChannelConfiguration class]], @"Illegal :isEqual");
GRPCChannelConfiguration *obj = (GRPCChannelConfiguration *)object;
if (!(obj.host == _host || [obj.host isEqualToString:_host])) return NO;
if (!(obj.callOptions.userAgentPrefix == _callOptions.userAgentPrefix ||
[obj.callOptions.userAgentPrefix isEqualToString:_callOptions.userAgentPrefix]))
return NO;
if (!(obj.callOptions.responseSizeLimit == _callOptions.responseSizeLimit)) return NO;
if (!(obj.callOptions.compressAlgorithm == _callOptions.compressAlgorithm)) return NO;
if (!(obj.callOptions.enableRetry == _callOptions.enableRetry)) return NO;
if (!(obj.callOptions.keepaliveInterval == _callOptions.keepaliveInterval)) return NO;
if (!(obj.callOptions.keepaliveTimeout == _callOptions.keepaliveTimeout)) return NO;
if (!(obj.callOptions.connectMinTimeout == _callOptions.connectMinTimeout)) return NO;
if (!(obj.callOptions.connectInitialBackoff == _callOptions.connectInitialBackoff)) return NO;
if (!(obj.callOptions.connectMaxBackoff == _callOptions.connectMaxBackoff)) return NO;
if (!(obj.callOptions.additionalChannelArgs == _callOptions.additionalChannelArgs ||
[obj.callOptions.additionalChannelArgs
isEqualToDictionary:_callOptions.additionalChannelArgs]))
return NO;
if (!(obj.callOptions.PEMRootCertificates == _callOptions.PEMRootCertificates ||
[obj.callOptions.PEMRootCertificates isEqualToString:_callOptions.PEMRootCertificates]))
return NO;
if (!(obj.callOptions.PEMPrivateKey == _callOptions.PEMPrivateKey ||
[obj.callOptions.PEMPrivateKey isEqualToString:_callOptions.PEMPrivateKey]))
return NO;
if (!(obj.callOptions.PEMCertChain == _callOptions.PEMCertChain ||
[obj.callOptions.PEMCertChain isEqualToString:_callOptions.PEMCertChain]))
return NO;
if (!(obj.callOptions.hostNameOverride == _callOptions.hostNameOverride ||
[obj.callOptions.hostNameOverride isEqualToString:_callOptions.hostNameOverride]))
return NO;
if (!(obj.callOptions.transportType == _callOptions.transportType)) return NO;
if (!(obj.callOptions.logContext == _callOptions.logContext ||
[obj.callOptions.logContext isEqual:_callOptions.logContext]))
return NO;
if (!(obj.callOptions.channelPoolDomain == _callOptions.channelPoolDomain ||
[obj.callOptions.channelPoolDomain isEqualToString:_callOptions.channelPoolDomain]))
return NO;
if (!(obj.callOptions.channelID == _callOptions.channelID)) return NO;
if (!(obj.callOptions == _callOptions || [obj.callOptions isChannelOptionsEqualTo:_callOptions])) return NO;
return YES;
}

Loading…
Cancel
Save