|
|
|
@ -150,14 +150,17 @@ NSTimeInterval kChannelDestroyDelay = 30; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (grpc_call *)unmanagedCallWithPath:(NSString *)path |
|
|
|
|
completionQueue:(nonnull GRPCCompletionQueue *)queue |
|
|
|
|
completionQueue:(GRPCCompletionQueue *)queue |
|
|
|
|
callOptions:(GRPCCallOptions *)callOptions { |
|
|
|
|
NSAssert(path.length, @"path must not be empty."); |
|
|
|
|
NSAssert(queue, @"completionQueue must not be empty."); |
|
|
|
|
NSAssert(callOptions, @"callOptions must not be empty."); |
|
|
|
|
__block grpc_call *call = nil; |
|
|
|
|
dispatch_sync(_dispatchQueue, ^{ |
|
|
|
|
if (self->_unmanagedChannel) { |
|
|
|
|
NSString *serverAuthority = callOptions.serverAuthority; |
|
|
|
|
NSTimeInterval timeout = callOptions.timeout; |
|
|
|
|
GPR_ASSERT(timeout >= 0); |
|
|
|
|
NSAssert(timeout >= 0, @"Invalid timeout"); |
|
|
|
|
grpc_slice host_slice = grpc_empty_slice(); |
|
|
|
|
if (serverAuthority) { |
|
|
|
|
host_slice = grpc_slice_from_copied_string(serverAuthority.UTF8String); |
|
|
|
@ -216,8 +219,12 @@ NSTimeInterval kChannelDestroyDelay = 30; |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (nullable instancetype)initWithUnmanagedChannel:(nullable grpc_channel *)unmanagedChannel |
|
|
|
|
- (nullable instancetype)initWithUnmanagedChannel:(grpc_channel * _Nullable)unmanagedChannel |
|
|
|
|
configuration:(GRPCChannelConfiguration *)configuration { |
|
|
|
|
NSAssert(configuration, @"Configuration must not be empty."); |
|
|
|
|
if (!unmanagedChannel) { |
|
|
|
|
return nil; |
|
|
|
|
} |
|
|
|
|
if ((self = [super init])) { |
|
|
|
|
_unmanagedChannel = unmanagedChannel; |
|
|
|
|
_configuration = [configuration copy]; |
|
|
|
|