aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/compiler/objective_c_generator.cc
diff options
context:
space:
mode:
authorGravatar murgatroid99 <mlumish@google.com>2015-04-07 12:49:14 -0700
committerGravatar murgatroid99 <mlumish@google.com>2015-04-07 12:49:14 -0700
commitac0002adb8c8baa9382576c8075fda6b7cd02dab (patch)
tree2aa5592f02105d7c4930d66526c74ffdce3e3fa4 /src/compiler/objective_c_generator.cc
parentd3efd0a1ecce86405ac5eee2121fdb767e65fdb4 (diff)
Made Objective C plugin build without error
Diffstat (limited to 'src/compiler/objective_c_generator.cc')
-rw-r--r--src/compiler/objective_c_generator.cc116
1 files changed, 59 insertions, 57 deletions
diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc
index 41ffabe898..c68c9c37c2 100644
--- a/src/compiler/objective_c_generator.cc
+++ b/src/compiler/objective_c_generator.cc
@@ -47,8 +47,8 @@ void PrintSimpleBlockSignature(grpc::protobuf::io::Printer *printer,
const grpc::protobuf::MethodDescriptor *method,
std::map<grpc::string, grpc::string> *vars) {
(*vars)["method_name"] = method->name();
- (*vars)["request_type"] = PrefixedName(method->input_type());
- (*vars)["response_type"] = PrefixedName(method->output_type());
+ (*vars)["request_type"] = PrefixedName(method->input_type()->name());
+ (*vars)["response_type"] = PrefixedName(method->output_type()->name());
if (method->server_streaming()) {
printer->Print("// When the response stream finishes, the handler is "
@@ -56,7 +56,7 @@ void PrintSimpleBlockSignature(grpc::protobuf::io::Printer *printer,
} else {
printer->Print("// The handler is only called once.\n\n");
}
- printer->Print(vars, "- (id<GRXLiveSource>)$method_name$WithRequest:"
+ printer->Print(*vars, "- (id<GRXLiveSource>)$method_name$WithRequest:"
"($request_type$)request completionHandler:(void(^)"
"($response_type$ *, NSError *))handler");
}
@@ -65,9 +65,9 @@ void PrintSimpleDelegateSignature(grpc::protobuf::io::Printer *printer,
const grpc::protobuf::MethodDescriptor *method,
std::map<grpc::string, grpc::string> *vars) {
(*vars)["method_name"] = method->name();
- (*vars)["request_type"] = PrefixedName(method->input_type());
+ (*vars)["request_type"] = PrefixedName(method->input_type()->name());
- printer->Print(vars, "- (id<GRXLiveSource>)$method_name$WithRequest:"
+ printer->Print(*vars, "- (id<GRXLiveSource>)$method_name$WithRequest:"
"($request_type$)request delegate:(id<GRXSink>)delegate");
}
@@ -75,52 +75,10 @@ void PrintAdvancedSignature(grpc::protobuf::io::Printer *printer,
const grpc::protobuf::MethodDescriptor *method,
std::map<grpc::string, grpc::string> *vars) {
(*vars)["method_name"] = method->name();
- printer->Print(vars, "- (GRXSource *)$method_name$WithRequest:"
+ printer->Print(*vars, "- (GRXSource *)$method_name$WithRequest:"
"(id<GRXSource>)request");
}
-grpc::string GetHeader(const grpc::protobuf::ServiceDescriptor *service
- const grpc::string message_header) {
- grpc::string output;
- grpc::protobuf::io::StringOutputStream output_stream(&output);
- grpc::protobuf::io::Printer printer(&output_stream, '$');
- std::map<grpc::string, grpc::string> vars;
- printer.Print("#import \"PBgRPCClient.h\"\n");
- printer.Print("#import \"PBStub.h\"\n");
- vars["message_header"] = message_header;
- printer.Print(&vars, "#import \"$message_header$\"\n\n");
- printer.Print("@protocol GRXSource\n");
- printer.Print("@class GRXSource\n\n");
- vars["service_name"] = service->name();
- printer.Print("@protocol $service_name$Stub <NSObject>\n\n");
- printer.Print("#pragma mark Simple block handlers\n\n");
- for (int i = 0; i < service->method_count(); i++) {
- PrintSimpleBlockSignature(&printer, service->method(i), &vars);
- printer.Print(";\n");
- }
- printer.Print("\n");
- printer.Print("#pragma mark Simple delegate handlers.\n\n");
- printer.Print("# TODO(jcanizales): Use high-level snippets to remove this duplication.");
- for (int i = 0; i < service->method_count(); i++) {
- PrintSimpleDelegateSignature(&printer, service->method(i), &vars);
- printer.Print(";\n");
- }
- printer.Print("\n");
- printer.Print("#pragma mark Advanced handlers.\n\n");
- for (int i = 0; i < service->method_count(); i++) {
- PrintAdvancedSignature(&printer, service->method(i), &vars);
- printer.Print(";\n");
- }
- printer.Print("\n");
- printer.Print("@end\n\n");
- printer.Print("// Basic stub that only does marshalling and parsing\n");
- printer.Print(&vars, "@interface $service_name$Stub :"
- " PBStub<$service_name$Stub>\n");
- printer.Print("- (instancetype)initWithHost:(NSString *)host;\n");
- printer.Print("@end\n");
- return output;
-}
-
void PrintSourceMethodSimpleBlock(grpc::protobuf::io::Printer *printer,
const grpc::protobuf::MethodDescriptor *method,
std::map<grpc::string, grpc::string> *vars) {
@@ -129,7 +87,7 @@ void PrintSourceMethodSimpleBlock(grpc::protobuf::io::Printer *printer,
(*vars)["method_name"] = method->name();
printer->Print(" {\n");
printer->Indent();
- printer->Print(vars, "return [[self $method_name$WithRequest:request] "
+ printer->Print(*vars, "return [[self $method_name$WithRequest:request] "
"connectHandler:^(id value, NSError *error) {\n");
printer->Indent();
printer->Print("handler(value, error);\n");
@@ -147,7 +105,7 @@ void PrintSourceMethodSimpleDelegate(grpc::protobuf::io::Printer *printer,
(*vars)["method_name"] = method->name();
printer->Print(" {\n");
printer->Indent();
- printer->Print(vars, "return [[self $method_name$WithRequest:request]"
+ printer->Print(*vars, "return [[self $method_name$WithRequest:request]"
"connectToSink:delegate];\n");
printer->Outdent();
printer->Print("}\n");
@@ -161,7 +119,7 @@ void PrintSourceMethodAdvanced(grpc::protobuf::io::Printer *printer,
(*vars)["method_name"] = method->name();
printer->Print(" {\n");
printer->Indent();
- printer->Print(vars, "return [self $method_name$WithRequest:request "
+ printer->Print(*vars, "return [self $method_name$WithRequest:request "
"client:[self newClient]];\n");
printer->Outdent();
printer->Print("}\n");
@@ -171,15 +129,15 @@ void PrintSourceMethodHandler(grpc::protobuf::io::Printer *printer,
const grpc::protobuf::MethodDescriptor *method,
std::map<grpc::string, grpc::string> *vars) {
(*vars)["method_name"] = method->name();
- (*vars)["response_type"] = PrefixedName(method->output_type());
+ (*vars)["response_type"] = PrefixedName(method->output_type()->name());
(*vars)["caps_name"] = grpc_generator::CapitalizeFirstLetter(method->name());
- printer->Print(vars, "- (GRXSource *)$method_name$WithRequest:"
+ printer->Print(*vars, "- (GRXSource *)$method_name$WithRequest:"
"(id<GRXSource>)request client:(PBgRPCClient *)client {\n");
printer->Indent();
- printer->Print(vars,
+ printer->Print(*vars,
"return [self responseWithMethod:$@\"$caps_name\"\n");
- printer->Print(vars,
+ printer->Print(*vars,
" class:[$response_type$ class]\n");
printer->Print(" request:request\n");
printer->Print(" client:client];\n");
@@ -187,16 +145,60 @@ void PrintSourceMethodHandler(grpc::protobuf::io::Printer *printer,
printer->Print("}\n");
}
+}
+
+grpc::string GetHeader(const grpc::protobuf::ServiceDescriptor *service,
+ const grpc::string message_header) {
+ grpc::string output;
+ grpc::protobuf::io::StringOutputStream output_stream(&output);
+ grpc::protobuf::io::Printer printer(&output_stream, '$');
+ std::map<grpc::string, grpc::string> vars;
+ printer.Print("#import \"PBgRPCClient.h\"\n");
+ printer.Print("#import \"PBStub.h\"\n");
+ vars["message_header"] = message_header;
+ printer.Print(vars, "#import \"$message_header$\"\n\n");
+ printer.Print("@protocol GRXSource\n");
+ printer.Print("@class GRXSource\n\n");
+ vars["service_name"] = service->name();
+ printer.Print("@protocol $service_name$Stub <NSObject>\n\n");
+ printer.Print("#pragma mark Simple block handlers\n\n");
+ for (int i = 0; i < service->method_count(); i++) {
+ PrintSimpleBlockSignature(&printer, service->method(i), &vars);
+ printer.Print(";\n");
+ }
+ printer.Print("\n");
+ printer.Print("#pragma mark Simple delegate handlers.\n\n");
+ printer.Print("# TODO(jcanizales): Use high-level snippets to remove this duplication.");
+ for (int i = 0; i < service->method_count(); i++) {
+ PrintSimpleDelegateSignature(&printer, service->method(i), &vars);
+ printer.Print(";\n");
+ }
+ printer.Print("\n");
+ printer.Print("#pragma mark Advanced handlers.\n\n");
+ for (int i = 0; i < service->method_count(); i++) {
+ PrintAdvancedSignature(&printer, service->method(i), &vars);
+ printer.Print(";\n");
+ }
+ printer.Print("\n");
+ printer.Print("@end\n\n");
+ printer.Print("// Basic stub that only does marshalling and parsing\n");
+ printer.Print(vars, "@interface $service_name$Stub :"
+ " PBStub<$service_name$Stub>\n");
+ printer.Print("- (instancetype)initWithHost:(NSString *)host;\n");
+ printer.Print("@end\n");
+ return output;
+}
+
grpc::string GetSource(const grpc::protobuf::ServiceDescriptor *service) {
grpc::string output;
grpc::protobuf::io::StringOutputStream output_stream(&output);
grpc::protobuf::io::Printer printer(&output_stream, '$');
std::map<grpc::string, grpc::string> vars;
vars["service_name"] = service->name();
- printer.Print(&vars, "#import \"$service_name$Stub.pb.h\"\n");
+ printer.Print(vars, "#import \"$service_name$Stub.pb.h\"\n");
printer.Print("#import \"PBGeneratedMessage+GRXSource.h\"\n\n");
vars["full_name"] = service->full_name();
- printer.Print(&vars,
+ printer.Print(vars,
"static NSString *const kInterface = @\"$full_name$\";\n");
printer.Print("@implementation $service_name$Stub\n\n");
printer.Print("- (instancetype)initWithHost:(NSString *)host {\n");