Send initial metadata
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index 790dd71..6fa01f5 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -53,12 +53,18 @@
 
   std::chrono::system_clock::time_point absolute_deadline() { return deadline_; }
 
+  void AddInitialMetadata(const grpc::string& key, const grpc::string& value);
+  void AddTrailingMetadata(const grpc::string& key, const grpc::string& value);
+
  private:
   friend class ::grpc::Server;
   ServerContext(gpr_timespec deadline, grpc_metadata *metadata, size_t metadata_count);
 
   const std::chrono::system_clock::time_point deadline_;
-  std::multimap<grpc::string, grpc::string> metadata_;
+  bool sent_initial_metadata_ = false;
+  std::multimap<grpc::string, grpc::string> client_metadata_;
+  std::multimap<grpc::string, grpc::string> initial_metadata_;
+  std::multimap<grpc::string, grpc::string> trailing_metadata_;
 };
 
 }  // namespace grpc