|  | @@ -6,7 +6,7 @@ This tutorial provides a basic C++ programmer's introduction to working with gRP
 | 
	
		
			
				|  |  |  - Generate server and client code using the protocol buffer compiler.
 | 
	
		
			
				|  |  |  - Use the C++ gRPC API to write a simple client and server for your service.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -It assumes that you have read the [Getting started](https://github.com/grpc/grpc/tree/master/examples) guide and are familiar with [protocol buffers] (https://developers.google.com/protocol-buffers/docs/overview). Note that the example in this tutorial uses the proto3 version of the protocol buffers language, which is currently in alpha release: you can find out more in the [proto3 language guide](https://developers.google.com/protocol-buffers/docs/proto3) and see the [release notes](https://github.com/google/protobuf/releases) for the new version in the protocol buffers Github repository.
 | 
	
		
			
				|  |  | +It assumes that you have read the [Getting started](..) guide and are familiar with [protocol buffers] (https://developers.google.com/protocol-buffers/docs/overview). Note that the example in this tutorial uses the proto3 version of the protocol buffers language, which is currently in alpha release: you can find out more in the [proto3 language guide](https://developers.google.com/protocol-buffers/docs/proto3) and see the [release notes](https://github.com/google/protobuf/releases) for the new version in the protocol buffers Github repository.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  This isn't a comprehensive guide to using gRPC in C++: more reference documentation is coming soon.
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -18,7 +18,7 @@ With gRPC we can define our service once in a .proto file and implement clients
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ## Example code and setup
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -The example code for our tutorial is in [examples/cpp/route_guide](examples/cpp/route_guide). To download the example, clone this repository by running the following command:
 | 
	
		
			
				|  |  | +The example code for our tutorial is in [examples/cpp/route_guide](route_guide). To download the example, clone this repository by running the following command:
 | 
	
		
			
				|  |  |  ```shell
 | 
	
		
			
				|  |  |  $ git clone https://github.com/grpc/grpc.git
 | 
	
		
			
				|  |  |  ```
 | 
	
	
		
			
				|  | @@ -28,12 +28,12 @@ Then change your current directory to `examples/cpp/route_guide`:
 | 
	
		
			
				|  |  |  $ cd examples/cpp/route_guide
 | 
	
		
			
				|  |  |  ```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -You also should have the relevant tools installed to generate the server and client interface code - if you don't already, follow the setup instructions in [the C++ quick start guide](examples/cpp).
 | 
	
		
			
				|  |  | +You also should have the relevant tools installed to generate the server and client interface code - if you don't already, follow the setup instructions in [gRPC in 3 minutes](README.md).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ## Defining the service
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Our first step (as you'll know from [Getting started](examples/) is to define the gRPC *service* and the method *request* and *response* types using [protocol buffers] (https://developers.google.com/protocol-buffers/docs/overview). You can see the complete .proto file in [`examples/protos/route_guide.proto`](examples/protos/route_guide.proto).
 | 
	
		
			
				|  |  | +Our first step (as you'll know from [Getting started](..) is to define the gRPC *service* and the method *request* and *response* types using [protocol buffers] (https://developers.google.com/protocol-buffers/docs/overview). You can see the complete .proto file in [`examples/protos/route_guide.proto`](../protos/route_guide.proto).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  To define a service, you specify a named `service` in your .proto file:
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -91,7 +91,7 @@ message Point {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Next we need to generate the gRPC client and server interfaces from our .proto service definition. We do this using the protocol buffer compiler `protoc` with a special gRPC C++ plugin.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -For simplicity, we've provided a [makefile](examples/cpp/route_guide/Makefile) that runs `protoc` for you with the appropriate plugin, input, and output (if you want to run this yourself, make sure you've installed protoc and followed the gRPC code [installation instructions](https://github.com/grpc/grpc/blob/master/INSTALL) first):
 | 
	
		
			
				|  |  | +For simplicity, we've provided a [makefile](route_guide/Makefile) that runs `protoc` for you with the appropriate plugin, input, and output (if you want to run this yourself, make sure you've installed protoc and followed the gRPC code [installation instructions](../../INSTALL) first):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ```shell
 | 
	
		
			
				|  |  |  $ make route_guide.grpc.pb.cc route_guide.pb.cc
 | 
	
	
		
			
				|  | @@ -126,7 +126,7 @@ There are two parts to making our `RouteGuide` service do its job:
 | 
	
		
			
				|  |  |  - Implementing the service interface generated from our service definition: doing the actual "work" of our service.
 | 
	
		
			
				|  |  |  - Running a gRPC server to listen for requests from clients and return the service responses.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -You can find our example `RouteGuide` server in [examples/cpp/route_guide/route_guide_server.cc](examples/cpp/route_guide/route_guide_server.cc). Let's take a closer look at how it works.
 | 
	
		
			
				|  |  | +You can find our example `RouteGuide` server in [route_guide/route_guide_server.cc](route_guide/route_guide_server.cc). Let's take a closer look at how it works.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ### Implementing RouteGuide
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -236,16 +236,16 @@ As you can see, we build and start our server using a `ServerBuilder`. To do thi
 | 
	
		
			
				|  |  |  <a name="client"></a>
 | 
	
		
			
				|  |  |  ## Creating the client
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -In this section, we'll look at creating a C++ client for our `RouteGuide` service. You can see our complete example client code in [examples/cpp/route_guide/route_guide_client.cc](examples/cpp/route_guide/route_guide_client.cc).
 | 
	
		
			
				|  |  | +In this section, we'll look at creating a C++ client for our `RouteGuide` service. You can see our complete example client code in [route_guide/route_guide_client.cc](route_guide/route_guide_client.cc).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ### Creating a stub
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  To call service methods, we first need to create a *stub*.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -First we need to create a gRPC *channel* for our stub, specifying the server address and port we want to connect to and any special channel arguments - in our case we'll use the default `ChannelArguments` and no SSL:
 | 
	
		
			
				|  |  | +First we need to create a gRPC *channel* for our stub, specifying the server address and port we want to connect to without SSL:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ```cpp
 | 
	
		
			
				|  |  | -grpc::CreateChannel("localhost:50051", grpc::InsecureCredentials(), ChannelArguments());
 | 
	
		
			
				|  |  | +grpc::CreateChannel("localhost:50051", grpc::InsecureCredentials());
 | 
	
		
			
				|  |  |  ```
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Now we can use the channel to create our stub using the `NewStub` method provided in the `RouteGuide` class we generated from our .proto.
 |