| 
					
				 | 
			
			
				@@ -206,7 +206,7 @@ static NSString * const kHostAddress = @"localhost:50051"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * database with a variable delay in between. Prints the statistics when they are sent from the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * server. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@interface RecordRouteViewController : UIViewController<GRPCProtoResponseHandler> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@interface RecordRouteViewController : UIViewController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @property (weak, nonatomic) IBOutlet UILabel *outputLabel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,10 +216,6 @@ static NSString * const kHostAddress = @"localhost:50051"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   RTGRouteGuide *_service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- (dispatch_queue_t)dispatchQueue { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return dispatch_get_main_queue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (void)execRequest { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NSString *dataBasePath = [NSBundle.mainBundle pathForResource:@"route_guide_db" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                          ofType:@"json"]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -234,7 +230,27 @@ static NSString * const kHostAddress = @"localhost:50051"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  GRPCStreamingProtoCall *call = [_service recordRouteWithResponseHandler:self 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  void (^handler)(RTGRouteSummary *response, NSError *error) = ^(RTGRouteSummary *response, NSError *error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSString *str =[NSString stringWithFormat: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      @"%@\nFinished trip with %i points\nPassed %i features\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      "Travelled %i meters\nIt took %i seconds", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      self.outputLabel.text, response.pointCount, response.featureCount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      response.distance, response.elapsedTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.outputLabel.text = str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSLog(@"Finished trip with %i points", response.pointCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSLog(@"Passed %i features", response.featureCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSLog(@"Travelled %i meters", response.distance); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSLog(@"It took %i seconds", response.elapsedTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSString *str =[NSString stringWithFormat:@"%@\nRPC error: %@", self.outputLabel.text, error]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      self.outputLabel.text = str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      NSLog(@"RPC error: %@", error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  GRPCStreamingProtoCall *call = [_service recordRouteWithResponseHandler:[[GRPCUnaryResponseHandler alloc] initWithResponseHandler:handler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                                                              responseDispatchQueue:nil] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                               callOptions:nil]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [call start]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for (id feature in features) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -249,31 +265,6 @@ static NSString * const kHostAddress = @"localhost:50051"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [call finish]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- (void)didReceiveProtoMessage:(GPBMessage *)message { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  RTGRouteSummary *response = (RTGRouteSummary *)message; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (response) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSString *str =[NSString stringWithFormat: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    @"%@\nFinished trip with %i points\nPassed %i features\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "Travelled %i meters\nIt took %i seconds", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    self.outputLabel.text, response.pointCount, response.featureCount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    response.distance, response.elapsedTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    self.outputLabel.text = str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSLog(@"Finished trip with %i points", response.pointCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSLog(@"Passed %i features", response.featureCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSLog(@"Travelled %i meters", response.distance); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSLog(@"It took %i seconds", response.elapsedTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- (void)didCloseWithTrailingMetadata:(NSDictionary *)trailingMetadata error:(NSError *)error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSString *str =[NSString stringWithFormat:@"%@\nRPC error: %@", self.outputLabel.text, error]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    self.outputLabel.text = str; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSLog(@"RPC error: %@", error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (void)viewDidLoad { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   [super viewDidLoad]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |