aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/GRPCClient/private/GRPCChannel.m
diff options
context:
space:
mode:
authorGravatar Makarand Dharmapurikar <makarandd@google.com>2016-05-20 15:57:34 -0700
committerGravatar Makarand Dharmapurikar <makarandd@google.com>2016-05-20 15:57:34 -0700
commit9b5f64019e5d9fd631184f37c42d923fe1745096 (patch)
treeb74598cf68b40c554c7eb206529b62cc1c4e6feb /src/objective-c/GRPCClient/private/GRPCChannel.m
parentc68eb0609a11db31b81b709a049771908c547110 (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.m29
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];
}