xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/ProtoRPC/ProtoService.h (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #import <Foundation/Foundation.h>
20 
21 #import <GRPCClient/GRPCCallOptions.h>
22 #import "ProtoRPC.h"
23 
24 @protocol GRXWriteable;
25 @class GRXWriter;
26 @class GRPCCallOptions;
27 
28 #pragma clang diagnostic push
29 #pragma clang diagnostic ignored "-Wnullability-completeness"
30 
31 __attribute__((deprecated("Please use GRPCProtoService.")))
32 @interface ProtoService : NSObject
33 
34 - (nullable instancetype)initWithHost:(nonnull NSString *)host
35                           packageName:(nonnull NSString *)packageName
36                           serviceName:(nonnull NSString *)serviceName
37                           callOptions:(nullable GRPCCallOptions *)callOptions
38     NS_DESIGNATED_INITIALIZER;
39 
40 - (nullable GRPCUnaryProtoCall *)RPCToMethod:(nonnull NSString *)method
41                                      message:(nonnull id)message
42                              responseHandler:(nonnull id<GRPCProtoResponseHandler>)handler
43                                  callOptions:(nullable GRPCCallOptions *)callOptions
44                                responseClass:(nonnull Class)responseClass;
45 
46 - (nullable GRPCStreamingProtoCall *)RPCToMethod:(nonnull NSString *)method
47                                  responseHandler:(nonnull id<GRPCProtoResponseHandler>)handler
48                                      callOptions:(nullable GRPCCallOptions *)callOptions
49                                    responseClass:(nonnull Class)responseClass;
50 
51 @end
52 
53 @interface ProtoService (Legacy)
54 
55 - (instancetype)initWithHost:(NSString *)host
56                  packageName:(NSString *)packageName
57                  serviceName:(NSString *)serviceName;
58 
59 - (GRPCProtoCall *)RPCToMethod:(NSString *)method
60                 requestsWriter:(GRXWriter *)requestsWriter
61                  responseClass:(Class)responseClass
62             responsesWriteable:(id<GRXWriteable>)responsesWriteable;
63 
64 @end
65 
66 #pragma clang diagnostic pop
67 
68 /**
69  * This subclass is empty now. Eventually we'll remove ProtoService class
70  * to avoid potential naming conflict
71  */
72 #pragma clang diagnostic push
73 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
74 @interface GRPCProtoService : ProtoService
75 #pragma clang diagnostic pop
76 
77 @end
78