diff options
author | 2016-09-27 19:42:27 -0700 | |
---|---|---|
committer | 2016-09-27 19:42:27 -0700 | |
commit | 892dbf4d95c0694fb569c6faa611546352871f11 (patch) | |
tree | 6b04a0a5e2b04cce4fd9916e9c71d86874e39001 /include/grpc++/server_builder.h | |
parent | 6b403331e011fe2e8f205eae870ff22f83b6485e (diff) |
Make settings configurable
Diffstat (limited to 'include/grpc++/server_builder.h')
-rw-r--r-- | include/grpc++/server_builder.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h index d9a6878317..8fac168ff7 100644 --- a/include/grpc++/server_builder.h +++ b/include/grpc++/server_builder.h @@ -62,6 +62,22 @@ class ServerBuilder { public: ServerBuilder(); + struct SyncServerSettings { + // Number of server completion queues to create to listen to incoming RPCs. + int num_cqs; + + // Minimum number of threads per completion queue that should be listening + // to incoming RPCs. + int min_pollers; + + // Maximum number of threads per completion queue that can be listening to + // incoming RPCs. + int max_pollers; + + // The timeout for server completion queue's AsyncNext call. + int cq_timeout_msec; + }; + /// Register a service. This call does not take ownership of the service. /// The service must exist for the lifetime of the \a Server instance returned /// by \a BuildAndStart(). @@ -115,6 +131,9 @@ class ServerBuilder { ServerBuilder& SetOption(std::unique_ptr<ServerBuilderOption> option); + /// Note: Only useful if this is a Synchronous server. + void SetSyncServerSettings(SyncServerSettings settings); + /// Tries to bind \a server to the given \a addr. /// /// It can be invoked multiple times. @@ -164,18 +183,20 @@ class ServerBuilder { private: friend class ::grpc::testing::ServerBuilderPluginTest; - // TODO (sreek) Make these configurable - // The default number of minimum and maximum number of polling threads needed - // per completion queue. These are only used in case of Sync server - const int kDefaultMinPollers = 1; - const int kDefaultMaxPollers = -1; // Unlimited - struct Port { grpc::string addr; std::shared_ptr<ServerCredentials> creds; int* selected_port; }; + // Sync server settings. If this is not set via SetSyncServerSettings(), the + // following default values are used: + // sync_server_settings_.num_cqs = Number of CPUs + // sync_server_settings_.min_pollers = 1 + // sync_server_settings_.max_pollers = INT_MAX + // sync_server_settings_.cq_timeout_msec = 1000 + struct SyncServerSettings sync_server_settings_; + typedef std::unique_ptr<grpc::string> HostString; struct NamedService { explicit NamedService(Service* s) : service(s) {} |