|  | @@ -580,6 +580,10 @@ void PrintHeaderClientMethodCallbackInterfaces(
 | 
	
		
			
				|  |  |                     "virtual void $Method$(::grpc::ClientContext* context, "
 | 
	
		
			
				|  |  |                     "const $Request$* request, $Response$* response, "
 | 
	
		
			
				|  |  |                     "std::function<void(::grpc::Status)>) = 0;\n");
 | 
	
		
			
				|  |  | +    printer->Print(*vars,
 | 
	
		
			
				|  |  | +                   "virtual void $Method$(::grpc::ClientContext* context, "
 | 
	
		
			
				|  |  | +                   "const ::grpc::ByteBuffer* request, $Response$* response, "
 | 
	
		
			
				|  |  | +                   "std::function<void(::grpc::Status)>) = 0;\n");
 | 
	
		
			
				|  |  |    } else if (ClientOnlyStreaming(method)) {
 | 
	
		
			
				|  |  |      printer->Print(*vars,
 | 
	
		
			
				|  |  |                     "virtual void $Method$(::grpc::ClientContext* context, "
 | 
	
	
		
			
				|  | @@ -642,6 +646,10 @@ void PrintHeaderClientMethodCallback(grpc_generator::Printer* printer,
 | 
	
		
			
				|  |  |                     "void $Method$(::grpc::ClientContext* context, "
 | 
	
		
			
				|  |  |                     "const $Request$* request, $Response$* response, "
 | 
	
		
			
				|  |  |                     "std::function<void(::grpc::Status)>) override;\n");
 | 
	
		
			
				|  |  | +    printer->Print(*vars,
 | 
	
		
			
				|  |  | +                   "void $Method$(::grpc::ClientContext* context, "
 | 
	
		
			
				|  |  | +                   "const ::grpc::ByteBuffer* request, $Response$* response, "
 | 
	
		
			
				|  |  | +                   "std::function<void(::grpc::Status)>) override;\n");
 | 
	
		
			
				|  |  |    } else if (ClientOnlyStreaming(method)) {
 | 
	
		
			
				|  |  |      printer->Print(*vars,
 | 
	
		
			
				|  |  |                     "void $Method$(::grpc::ClientContext* context, "
 | 
	
	
		
			
				|  | @@ -1643,6 +1651,16 @@ void PrintSourceClientMethod(grpc_generator::Printer* printer,
 | 
	
		
			
				|  |  |                     "(stub_->channel_.get(), stub_->rpcmethod_$Method$_, "
 | 
	
		
			
				|  |  |                     "context, request, response, std::move(f));\n}\n\n");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    printer->Print(*vars,
 | 
	
		
			
				|  |  | +                   "void $ns$$Service$::Stub::experimental_async::$Method$("
 | 
	
		
			
				|  |  | +                   "::grpc::ClientContext* context, "
 | 
	
		
			
				|  |  | +                   "const ::grpc::ByteBuffer* request, $Response$* response, "
 | 
	
		
			
				|  |  | +                   "std::function<void(::grpc::Status)> f) {\n");
 | 
	
		
			
				|  |  | +    printer->Print(*vars,
 | 
	
		
			
				|  |  | +                   "  return ::grpc::internal::CallbackUnaryCall"
 | 
	
		
			
				|  |  | +                   "(stub_->channel_.get(), stub_->rpcmethod_$Method$_, "
 | 
	
		
			
				|  |  | +                   "context, request, response, std::move(f));\n}\n\n");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      for (auto async_prefix : async_prefixes) {
 | 
	
		
			
				|  |  |        (*vars)["AsyncPrefix"] = async_prefix.prefix;
 | 
	
		
			
				|  |  |        (*vars)["AsyncStart"] = async_prefix.start;
 |