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#ifndef GRPC_INTERNAL_COMPILER_OBJECTIVE_C_GENERATOR_H
20#define GRPC_INTERNAL_COMPILER_OBJECTIVE_C_GENERATOR_H
21
22#include "src/compiler/config.h"
23
24namespace grpc_objective_c_generator {
25
26struct Parameters {
27 // Do not generate V1 interface and implementation
28 bool no_v1_compatibility;
29};
30
31using ::grpc::protobuf::FileDescriptor;
32using ::grpc::protobuf::FileDescriptor;
33using ::grpc::protobuf::ServiceDescriptor;
34using ::grpc::string;
35
36// Returns forward declaration of classes in the generated header file.
37string GetAllMessageClasses(const FileDescriptor* file);
38
39// Returns the content to be included defining the @protocol segment at the
40// insertion point of the generated implementation file. This interface is
41// legacy and for backwards compatibility.
42string GetProtocol(const ServiceDescriptor* service,
43 const Parameters& generator_params);
44
45// Returns the content to be included defining the @protocol segment at the
46// insertion point of the generated implementation file.
47string GetV2Protocol(const ServiceDescriptor* service);
48
49// Returns the content to be included defining the @interface segment at the
50// insertion point of the generated implementation file.
51string GetInterface(const ServiceDescriptor* service,
52 const Parameters& generator_params);
53
54// Returns the content to be included in the "global_scope" insertion point of
55// the generated implementation file.
56string GetSource(const ServiceDescriptor* service,
57 const Parameters& generator_params);
58
59} // namespace grpc_objective_c_generator
60
61#endif // GRPC_INTERNAL_COMPILER_OBJECTIVE_C_GENERATOR_H
62