blob: d7b1aa8bf212b439e8827ecdb890b449621ea279 [file] [log] [blame]
murgatroid9930b7d4e2015-04-24 10:36:43 -07001/*
2 *
3 * Copyright 2015, Google Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above
13 * copyright notice, this list of conditions and the following disclaimer
14 * in the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Google Inc. nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
33
murgatroid9930b7d4e2015-04-24 10:36:43 -070034#import <Foundation/Foundation.h>
murgatroid9954e93d42015-04-27 09:29:49 -070035#include <grpc/grpc.h>
murgatroid9930b7d4e2015-04-24 10:36:43 -070036#import "GRPCChannel.h"
37
38typedef void(^GRPCCompletionHandler)(NSDictionary *);
39
murgatroid9954e93d42015-04-27 09:29:49 -070040@protocol GRPCOp <NSObject>
41
42- (void)getOp:(grpc_op *)op;
43
44- (void(^)(void))opProcessor;
45
46@end
47
48@interface GRPCOpSendMetadata : NSObject <GRPCOp>
49
murgatroid996cc46802015-04-28 09:35:48 -070050- (instancetype)initWithMetadata:(NSDictionary *)metadata
51 handler:(void(^)(void))handler NS_DESIGNATED_INITIALIZER;
murgatroid9954e93d42015-04-27 09:29:49 -070052
53@end
54
55@interface GRPCOpSendMessage : NSObject <GRPCOp>
56
murgatroid996cc46802015-04-28 09:35:48 -070057- (instancetype)initWithMessage:(NSData *)message
58 handler:(void(^)(void))handler NS_DESIGNATED_INITIALIZER;
murgatroid9954e93d42015-04-27 09:29:49 -070059
60@end
61
62@interface GRPCOpSendClose : NSObject <GRPCOp>
63
64- (instancetype)initWithHandler:(void(^)(void))handler NS_DESIGNATED_INITIALIZER;
65
66@end
67
68@interface GRPCOpRecvMetadata : NSObject <GRPCOp>
69
70- (instancetype)initWithHandler:(void(^)(NSDictionary *))handler NS_DESIGNATED_INITIALIZER;
71
72@end
73
74@interface GRPCOpRecvMessage : NSObject <GRPCOp>
75
murgatroid996cc46802015-04-28 09:35:48 -070076- (instancetype)initWithHandler:(void(^)(grpc_byte_buffer *))handler NS_DESIGNATED_INITIALIZER;
murgatroid9954e93d42015-04-27 09:29:49 -070077
78@end
79
80@interface GRPCOpRecvStatus : NSObject <GRPCOp>
81
82- (instancetype)initWithHandler:(void(^)(NSError *))handler NS_DESIGNATED_INITIALIZER;
83
84@end
85
murgatroid9969927d62015-04-24 13:32:48 -070086@interface GRPCWrappedCall : NSObject
murgatroid9930b7d4e2015-04-24 10:36:43 -070087
murgatroid996cc46802015-04-28 09:35:48 -070088- (instancetype)initWithChannel:(GRPCChannel *)channel
89 method:(NSString *)method
90 host:(NSString *)host NS_DESIGNATED_INITIALIZER;
murgatroid9930b7d4e2015-04-24 10:36:43 -070091
murgatroid9954e93d42015-04-27 09:29:49 -070092- (void)startBatchWithOperations:(NSArray *)ops errorHandler:(void(^)())errorHandler;
murgatroid9969927d62015-04-24 13:32:48 -070093
murgatroid9954e93d42015-04-27 09:29:49 -070094- (void)startBatchWithOperations:(NSArray *)ops;
murgatroid9930b7d4e2015-04-24 10:36:43 -070095
96- (void)cancel;
97@end