|
|
|
@ -66,12 +66,10 @@ |
|
|
|
|
op->data.send_initial_metadata.metadata = _send_metadata; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)finish { |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)dealloc { |
|
|
|
@ -91,7 +89,7 @@ |
|
|
|
|
|
|
|
|
|
- (instancetype)initWithMessage:(NSData *)message handler:(void (^)(void))handler { |
|
|
|
|
if (!message) { |
|
|
|
|
[NSException raise:NSInvalidArgumentException format:@"message cannot be null"]; |
|
|
|
|
[NSException raise:NSInvalidArgumentException format:@"message cannot be nil"]; |
|
|
|
|
} |
|
|
|
|
if (self = [super init]) { |
|
|
|
|
_byte_buffer = [message grpc_byteBuffer]; |
|
|
|
@ -105,12 +103,10 @@ |
|
|
|
|
op->data.send_message = _byte_buffer; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)finish { |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)dealloc { |
|
|
|
@ -138,12 +134,10 @@ |
|
|
|
|
op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)finish { |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -170,15 +164,13 @@ |
|
|
|
|
op->data.recv_initial_metadata = &_recv_initial_metadata; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
NSDictionary *metadata = [NSDictionary |
|
|
|
|
grpc_dictionaryFromMetadata:_recv_initial_metadata.metadata |
|
|
|
|
count:_recv_initial_metadata.count]; |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(metadata); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)finish { |
|
|
|
|
NSDictionary *metadata = [NSDictionary |
|
|
|
|
grpc_dictionaryFromMetadata:_recv_initial_metadata.metadata |
|
|
|
|
count:_recv_initial_metadata.count]; |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(metadata); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)dealloc { |
|
|
|
@ -208,12 +200,10 @@ |
|
|
|
|
op->data.recv_message = &_recv_message; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(_recv_message); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)finish { |
|
|
|
|
if (_handler) { |
|
|
|
|
_handler(_recv_message); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@end |
|
|
|
@ -246,13 +236,11 @@ |
|
|
|
|
op->data.recv_status_on_client.trailing_metadata = &_status.metadata; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void (^)(void))opProcessor { |
|
|
|
|
return ^{ |
|
|
|
|
if (_handler) { |
|
|
|
|
NSError *error = [NSError grpc_errorFromStatus:&_status]; |
|
|
|
|
_handler(error); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
- (void)opProcessor { |
|
|
|
|
if (_handler) { |
|
|
|
|
NSError *error = [NSError grpc_errorFromStatus:&_status]; |
|
|
|
|
_handler(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)dealloc { |
|
|
|
@ -302,13 +290,11 @@ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
- (void)startBatchWithOperations:(NSArray *)operations errorHandler:(void (^)())errorHandler { |
|
|
|
|
NSMutableArray *opProcessors = [NSMutableArray array]; |
|
|
|
|
size_t nops = operations.count; |
|
|
|
|
grpc_op *ops_array = gpr_malloc(nops * sizeof(grpc_op)); |
|
|
|
|
size_t i = 0; |
|
|
|
|
for (id op in operations) { |
|
|
|
|
[op getOp:&ops_array[i++]]; |
|
|
|
|
[opProcessors addObject:[op opProcessor]]; |
|
|
|
|
} |
|
|
|
|
grpc_call_error error = grpc_call_start_batch(_call, ops_array, nops, |
|
|
|
|
(__bridge_retained void *)(^(grpc_op_error error){ |
|
|
|
@ -319,8 +305,8 @@ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (void(^processor)(void) in opProcessors) { |
|
|
|
|
processor(); |
|
|
|
|
for (id<GRPCOp> operation in operations) { |
|
|
|
|
[operation finish]; |
|
|
|
|
} |
|
|
|
|
})); |
|
|
|
|
|
|
|
|
|