aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/server/server_builder.cc
diff options
context:
space:
mode:
authorGravatar Yang Gao <yangg@google.com>2015-03-10 13:17:39 -0700
committerGravatar Yang Gao <yangg@google.com>2015-03-10 13:17:39 -0700
commitfccea1f70e8b58f02388678a92d100c3192cb5ec (patch)
tree88926031cdd23c36acb5056e280552fc37f7bbd1 /src/cpp/server/server_builder.cc
parent086cd1108c2a4bbf247aaefab9959996aec0d33b (diff)
parente0e8edfeda1f7061915bd04fd5e2f28a31064a5c (diff)
merge with upstream and resolve conflict
Diffstat (limited to 'src/cpp/server/server_builder.cc')
-rw-r--r--src/cpp/server/server_builder.cc23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index b7e5c84ef6..e3b9cdfd7f 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -62,14 +62,10 @@ void ServerBuilder::RegisterAnonymousService(AnonymousService* service) {
anonymous_service_ = service;
}
-void ServerBuilder::AddPort(const grpc::string& addr) {
- ports_.push_back(addr);
-}
-
-void ServerBuilder::SetCredentials(
- const std::shared_ptr<ServerCredentials>& creds) {
- GPR_ASSERT(!creds_);
- creds_ = creds;
+void ServerBuilder::AddPort(const grpc::string& addr,
+ std::shared_ptr<ServerCredentials> creds,
+ int* selected_port) {
+ ports_.push_back(Port{addr, creds, selected_port});
}
void ServerBuilder::SetThreadPool(ThreadPoolInterface* thread_pool) {
@@ -82,14 +78,13 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
gpr_log(GPR_ERROR, "Mixing async and sync services is unsupported for now");
return nullptr;
}
- if (!thread_pool_ && services_.size()) {
+ if (!thread_pool_ && !services_.empty()) {
int cores = gpr_cpu_num_cores();
if (!cores) cores = 4;
thread_pool_ = new ThreadPool(cores);
thread_pool_owned = true;
}
- std::unique_ptr<Server> server(
- new Server(thread_pool_, thread_pool_owned, creds_.get()));
+ std::unique_ptr<Server> server(new Server(thread_pool_, thread_pool_owned));
for (auto* service : services_) {
if (!server->RegisterService(service)) {
return nullptr;
@@ -104,8 +99,10 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
server->RegisterAnonymousService(anonymous_service_);
}
for (auto& port : ports_) {
- if (!server->AddPort(port)) {
- return nullptr;
+ int r = server->AddPort(port.addr, port.creds.get());
+ if (!r) return nullptr;
+ if (port.selected_port != nullptr) {
+ *port.selected_port = r;
}
}
if (!server->Start()) {