|  | @@ -47,9 +47,18 @@ using std::chrono::system_clock;
 | 
	
		
			
				|  |  |  struct grpc_call;
 | 
	
		
			
				|  |  |  struct grpc_completion_queue;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +namespace google {
 | 
	
		
			
				|  |  | +namespace protobuf {
 | 
	
		
			
				|  |  | +class Message;
 | 
	
		
			
				|  |  | +}  // namespace protobuf
 | 
	
		
			
				|  |  | +}  // namespace google
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  namespace grpc {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class CallOpBuffer;
 | 
	
		
			
				|  |  | +class ChannelInterface;
 | 
	
		
			
				|  |  | +class RpcMethod;
 | 
	
		
			
				|  |  | +class Status;
 | 
	
		
			
				|  |  |  template <class R> class ClientReader;
 | 
	
		
			
				|  |  |  template <class W> class ClientWriter;
 | 
	
		
			
				|  |  |  template <class R, class W> class ClientReaderWriter;
 | 
	
	
		
			
				|  | @@ -65,6 +74,16 @@ class ClientContext {
 | 
	
		
			
				|  |  |    void AddMetadata(const grpc::string &meta_key,
 | 
	
		
			
				|  |  |                     const grpc::string &meta_value);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  std::multimap<grpc::string, grpc::string> GetServerInitialMetadata() {
 | 
	
		
			
				|  |  | +    GPR_ASSERT(initial_metadata_received_);
 | 
	
		
			
				|  |  | +    return recv_initial_metadata_;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  std::multimap<grpc::string, grpc::string> GetServerTrailingMetadata() {
 | 
	
		
			
				|  |  | +    // TODO(yangg) check finished
 | 
	
		
			
				|  |  | +    return trailing_metadata_;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    void set_absolute_deadline(const system_clock::time_point &deadline);
 | 
	
		
			
				|  |  |    system_clock::time_point absolute_deadline();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -83,6 +102,10 @@ class ClientContext {
 | 
	
		
			
				|  |  |    template <class R> friend class ::grpc::ClientAsyncReader;
 | 
	
		
			
				|  |  |    template <class W> friend class ::grpc::ClientAsyncWriter;
 | 
	
		
			
				|  |  |    template <class R, class W> friend class ::grpc::ClientAsyncReaderWriter;
 | 
	
		
			
				|  |  | +  friend Status BlockingUnaryCall(ChannelInterface *channel, const RpcMethod &method,
 | 
	
		
			
				|  |  | +                         ClientContext *context,
 | 
	
		
			
				|  |  | +                         const google::protobuf::Message &request,
 | 
	
		
			
				|  |  | +                         google::protobuf::Message *result);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    grpc_call *call() { return call_; }
 | 
	
		
			
				|  |  |    void set_call(grpc_call *call) {
 |