diff options
author | murgatroid99 <mlumish@google.com> | 2015-04-07 12:49:14 -0700 |
---|---|---|
committer | murgatroid99 <mlumish@google.com> | 2015-04-07 12:49:14 -0700 |
commit | ac0002adb8c8baa9382576c8075fda6b7cd02dab (patch) | |
tree | 2aa5592f02105d7c4930d66526c74ffdce3e3fa4 /src | |
parent | d3efd0a1ecce86405ac5eee2121fdb767e65fdb4 (diff) |
Made Objective C plugin build without error
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/generator_helpers.h | 2 | ||||
-rw-r--r-- | src/compiler/objective_c_generator.cc | 116 | ||||
-rw-r--r-- | src/compiler/objective_c_generator.h | 2 | ||||
-rw-r--r-- | src/compiler/objective_c_generator_helpers.h | 2 | ||||
-rw-r--r-- | src/compiler/objective_c_plugin.cc | 11 |
5 files changed, 69 insertions, 64 deletions
diff --git a/src/compiler/generator_helpers.h b/src/compiler/generator_helpers.h index 2a3366ac65..374e1374cf 100644 --- a/src/compiler/generator_helpers.h +++ b/src/compiler/generator_helpers.h @@ -95,7 +95,7 @@ inline std::vector<grpc::string> tokenize(const grpc::string &input, } } -inline grpc::string CapitalizeFirstLetter(grpc::string str) { +inline grpc::string CapitalizeFirstLetter(grpc::string s) { if (s.empty()) { return s; } 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"); diff --git a/src/compiler/objective_c_generator.h b/src/compiler/objective_c_generator.h index bea63f51e5..93c730b34e 100644 --- a/src/compiler/objective_c_generator.h +++ b/src/compiler/objective_c_generator.h @@ -38,7 +38,7 @@ namespace grpc_objective_c_generator { -grpc::string GetHeader(const grpc::protobuf::ServiceDescriptor *service +grpc::string GetHeader(const grpc::protobuf::ServiceDescriptor *service, const grpc::string message_header); grpc::string GetSource(const grpc::protobuf::ServiceDescriptor *service); diff --git a/src/compiler/objective_c_generator_helpers.h b/src/compiler/objective_c_generator_helpers.h index 0c2ece823c..6a7c13991f 100644 --- a/src/compiler/objective_c_generator_helpers.h +++ b/src/compiler/objective_c_generator_helpers.h @@ -43,7 +43,7 @@ namespace grpc_objective_c_generator { const grpc::string prefix = "PBG"; inline grpc::string MessageHeaderName(const grpc::protobuf::FileDescriptor *file) { - return FileNameInUpperCase(file) + ".pb.h"; + return grpc_generator::FileNameInUpperCamel(file) + ".pb.h"; } inline grpc::string StubFileName(grpc::string service_name) { diff --git a/src/compiler/objective_c_plugin.cc b/src/compiler/objective_c_plugin.cc index 4d4146b5c4..eebce0cd20 100644 --- a/src/compiler/objective_c_plugin.cc +++ b/src/compiler/objective_c_plugin.cc @@ -56,21 +56,24 @@ class ObjectiveCGrpcGenerator : public grpc::protobuf::compiler::CodeGenerator { for (int i = 0; i < file->service_count(); i++) { const grpc::protobuf::ServiceDescriptor *service = file->service(i); - grpc::sring file_name = grpc_objective_c_generator::StubFileName( + grpc::string file_name = grpc_objective_c_generator::StubFileName( service->name()); // Generate .pb.h - grpc::string header_code = grpc_objective_c_generator::GetHeader(service); + grpc::string header_code = grpc_objective_c_generator::GetHeader( + service, grpc_objective_c_generator::MessageHeaderName(file)); std::unique_ptr<grpc::protobuf::io::ZeroCopyOutputStream> header_output( context->Open(file_name + ".pb.h")); - grpc::protobuf::io::CodedOutputStream header_coded_out(output.get()); + grpc::protobuf::io::CodedOutputStream header_coded_out( + header_output.get()); header_coded_out.WriteRaw(header_code.data(), header_code.size()); // Generate .pb.m grpc::string source_code = grpc_objective_c_generator::GetSource(service); std::unique_ptr<grpc::protobuf::io::ZeroCopyOutputStream> source_output( context->Open(file_name + ".pb.m")); - grpc::protobuf::io::CodedOutputStream source_coded_out(output.get()); + grpc::protobuf::io::CodedOutputStream source_coded_out( + source_output.get()); source_coded_out.WriteRaw(source_code.data(), source_code.size()); } |