diff options
author | 2017-05-23 13:53:44 -0700 | |
---|---|---|
committer | 2017-05-23 13:53:44 -0700 | |
commit | 0a94f3c8ab55dfd12c14058d57f33121c8d6c411 (patch) | |
tree | 48f6ce149c3048cbf94f495c0eb4e9d48eb9a280 | |
parent | 9aec2a548d77a1efbd5bd09b37b62a6d8a53bcf6 (diff) | |
parent | 725d82274385217b5f0345e834f7fae7e76fbd84 (diff) |
Merge pull request #11158 from yang-g/async_default_service
Add api to server builder plugin to modify the builder
-rw-r--r-- | include/grpc++/impl/server_builder_plugin.h | 5 | ||||
-rw-r--r-- | src/cpp/server/server_builder.cc | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/grpc++/impl/server_builder_plugin.h b/include/grpc++/impl/server_builder_plugin.h index 8f2bce54d7..d940f8cc7b 100644 --- a/include/grpc++/impl/server_builder_plugin.h +++ b/include/grpc++/impl/server_builder_plugin.h @@ -40,6 +40,7 @@ namespace grpc { +class ServerBuilder; class ServerInitializer; class ChannelArguments; @@ -51,6 +52,10 @@ class ServerBuilderPlugin { virtual ~ServerBuilderPlugin() {} virtual grpc::string name() = 0; + /// UpdateServerBuilder will be called at the beginning of + /// \a ServerBuilder::BuildAndStart(). + virtual void UpdateServerBuilder(ServerBuilder* builder) {} + /// InitServer will be called in ServerBuilder::BuildAndStart(), after the /// Server instance is created. virtual void InitServer(ServerInitializer* si) = 0; diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc index 6dca6a6862..c849d2e5b4 100644 --- a/src/cpp/server/server_builder.cc +++ b/src/cpp/server/server_builder.cc @@ -180,6 +180,10 @@ ServerBuilder& ServerBuilder::AddListeningPort( } std::unique_ptr<Server> ServerBuilder::BuildAndStart() { + for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) { + (*plugin)->UpdateServerBuilder(this); + } + ChannelArguments args; for (auto option = options_.begin(); option != options_.end(); ++option) { (*option)->UpdateArguments(&args); |