diff options
author | 2016-05-20 15:57:34 -0700 | |
---|---|---|
committer | 2016-05-20 15:57:34 -0700 | |
commit | 9b5f64019e5d9fd631184f37c42d923fe1745096 (patch) | |
tree | b74598cf68b40c554c7eb206529b62cc1c4e6feb /src/objective-c/GRPCClient/private/GRPCChannel.m | |
parent | c68eb0609a11db31b81b709a049771908c547110 (diff) |
ObjC interface for using Cronet, and test for Cronet
Diffstat (limited to 'src/objective-c/GRPCClient/private/GRPCChannel.m')
-rw-r--r-- | src/objective-c/GRPCClient/private/GRPCChannel.m | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m index 203ef58c0d..2be3b2125f 100644 --- a/src/objective-c/GRPCClient/private/GRPCChannel.m +++ b/src/objective-c/GRPCClient/private/GRPCChannel.m @@ -34,10 +34,11 @@ #import "GRPCChannel.h" #include <grpc/grpc_security.h> +#include <grpc/grpc_cronet.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/string_util.h> - +#import <GRPCClient/GRPCCall+Cronet.h> #import "GRPCCompletionQueue.h" void freeChannelArgs(grpc_channel_args *channel_args) { @@ -99,6 +100,22 @@ grpc_channel_args * buildChannelArgs(NSDictionary *dictionary) { grpc_channel_args *_channelArgs; } +- (instancetype)initWithHostUsingCronet:(NSString *)host + engine:(void *)engine + channelArgs:(NSDictionary *)channelArgs { + if (!host) { + [NSException raise:NSInvalidArgumentException format:@"host argument missing"]; + } + + if (self = [super init]) { + _channelArgs = buildChannelArgs(channelArgs); + _host = [host copy]; + _unmanagedChannel = grpc_cronet_secure_channel_create(engine, _host.UTF8String, _channelArgs, + NULL); + } + + return self; +} - (instancetype)initWithHost:(NSString *)host secure:(BOOL)secure @@ -133,6 +150,16 @@ grpc_channel_args * buildChannelArgs(NSDictionary *dictionary) { freeChannelArgs(_channelArgs); } ++ (GRPCChannel *)secureCronetChannelWithHost:(NSString *)host + channelArgs:(NSDictionary *)channelArgs { + void *engine = [GRPCCall getCronetEngine]; + if (!engine) { + [NSException raise:NSInvalidArgumentException format:@"cronet_engine is NULL. Set it first."]; + return nil; + } + return [[GRPCChannel alloc] initWithHostUsingCronet:host engine:engine channelArgs:channelArgs]; +} + + (GRPCChannel *)secureChannelWithHost:(NSString *)host { return [[GRPCChannel alloc] initWithHost:host secure:YES credentials:NULL channelArgs:NULL]; } |