aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/compiler/objective_c_generator.cc
diff options
context:
space:
mode:
authorGravatar Nate Kibler <nkibler@google.com>2015-09-25 10:02:20 -0700
committerGravatar Nate Kibler <nkibler@google.com>2015-09-25 10:02:20 -0700
commit6d19724a9008919eb1ef0a01790a2fa6299ac9d8 (patch)
treee25b4af01ab4adb24784b8159d52db13d3ea1207 /src/compiler/objective_c_generator.cc
parentd09a28e4a3e4f579e05d8c5b45c2ab9a06feee85 (diff)
Adds class factory method to generated ProtoService classes
Diffstat (limited to 'src/compiler/objective_c_generator.cc')
-rw-r--r--src/compiler/objective_c_generator.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/compiler/objective_c_generator.cc b/src/compiler/objective_c_generator.cc
index a3157db0fb..9eed78c961 100644
--- a/src/compiler/objective_c_generator.cc
+++ b/src/compiler/objective_c_generator.cc
@@ -203,6 +203,7 @@ void PrintMethodImplementations(Printer *printer,
printer.Print(
"- (instancetype)initWithHost:(NSString *)host"
" NS_DESIGNATED_INITIALIZER;\n");
+ printer.Print("+ (instancetype)serviceWithHost:(NSString *)host;\n");
printer.Print("@end\n");
}
return output;
@@ -239,6 +240,10 @@ void PrintMethodImplementations(Printer *printer,
printer.Print(" packageName:(NSString *)packageName\n");
printer.Print(" serviceName:(NSString *)serviceName {\n");
printer.Print(" return [self initWithHost:host];\n");
+ printer.Print("}\n\n");
+ printer.Print("// Class factory method\n");
+ printer.Print("+ (instancetype)serviceWithHost:(NSString *)host {\n");
+ printer.Print(" return [[self alloc] initWithHost:host];\n");
printer.Print("}\n\n\n");
for (int i = 0; i < service->method_count(); i++) {