aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/grpcpp/server.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/grpcpp/server.h')
-rw-r--r--include/grpcpp/server.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/include/grpcpp/server.h b/include/grpcpp/server.h
index 2b89ffd317..82d60b0218 100644
--- a/include/grpcpp/server.h
+++ b/include/grpcpp/server.h
@@ -191,8 +191,7 @@ class Server : public ServerInterface, private GrpcLibraryCodegen {
grpc_server* server() override { return server_; };
private:
- const std::vector<
- std::unique_ptr<experimental::ServerInterceptorFactoryInterface>>*
+ std::vector<std::unique_ptr<experimental::ServerInterceptorFactoryInterface>>*
interceptor_creators() override {
return &interceptor_creators_;
}
@@ -226,6 +225,14 @@ class Server : public ServerInterface, private GrpcLibraryCodegen {
ServerInitializer* initializer();
+ // A vector of interceptor factory objects.
+ // This should be destroyed after health_check_service_ and this requirement
+ // is satisfied by declaring interceptor_creators_ before
+ // health_check_service_. (C++ mandates that member objects be destroyed in
+ // the reverse order of initialization.)
+ std::vector<std::unique_ptr<experimental::ServerInterceptorFactoryInterface>>
+ interceptor_creators_;
+
const int max_receive_message_size_;
/// The following completion queues are ONLY used in case of Sync API
@@ -261,9 +268,6 @@ class Server : public ServerInterface, private GrpcLibraryCodegen {
// A special handler for resource exhausted in sync case
std::unique_ptr<internal::MethodHandler> resource_exhausted_handler_;
-
- std::vector<std::unique_ptr<experimental::ServerInterceptorFactoryInterface>>
- interceptor_creators_;
};
} // namespace grpc