aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/grpc++
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2015-11-25 10:21:05 -0800
committerGravatar yang-g <yangg@google.com>2015-11-25 10:21:05 -0800
commita23f17b1233453334ad137a3aeb338c801b5ada4 (patch)
treea23e9835a98b4414817f1c27e66b1c779f4631b5 /include/grpc++
parent447c795bb8d82ec328573c6517d82dc6d0dcc0f8 (diff)
add server_builder_option
Diffstat (limited to 'include/grpc++')
-rw-r--r--include/grpc++/impl/server_builder_option.h49
-rw-r--r--include/grpc++/server.h5
-rw-r--r--include/grpc++/server_builder.h6
3 files changed, 57 insertions, 3 deletions
diff --git a/include/grpc++/impl/server_builder_option.h b/include/grpc++/impl/server_builder_option.h
new file mode 100644
index 0000000000..cf5c1d93e4
--- /dev/null
+++ b/include/grpc++/impl/server_builder_option.h
@@ -0,0 +1,49 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
+#define GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
+
+#include <grpc++/support/channel_arguments.h>
+
+namespace grpc {
+
+class ServerBuilderOption {
+ public:
+ virtual ~ServerBuilderOption() {}
+ virtual void UpdateArguments(ChannelArguments* args) = 0;
+};
+
+} // namespace grpc
+
+#endif // GRPCXX_IMPL_SERVER_BUILDER_OPTION_H
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 1a62df5698..3161526aa9 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -37,14 +37,15 @@
#include <list>
#include <memory>
-#include <grpc/compression.h>
#include <grpc++/completion_queue.h>
#include <grpc++/impl/call.h>
#include <grpc++/impl/grpc_library.h>
#include <grpc++/impl/sync.h>
#include <grpc++/security/server_credentials.h>
+#include <grpc++/support/channel_arguments.h>
#include <grpc++/support/config.h>
#include <grpc++/support/status.h>
+#include <grpc/compression.h>
struct grpc_server;
@@ -100,7 +101,7 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
/// \param max_message_size Maximum message length that the channel can
/// receive.
Server(ThreadPoolInterface* thread_pool, bool thread_pool_owned,
- int max_message_size, grpc_compression_options compression_options);
+ int max_message_size, const ChannelArguments& args);
/// Register a service. This call does not take ownership of the service.
/// The service must exist for the lifetime of the Server instance.
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 05937f150b..b324deb9e0 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -37,8 +37,9 @@
#include <memory>
#include <vector>
-#include <grpc/compression.h>
+#include <grpc++/impl/server_builder_option.h>
#include <grpc++/support/config.h>
+#include <grpc/compression.h>
namespace grpc {
@@ -98,6 +99,8 @@ class ServerBuilder {
compression_options_ = options;
}
+ void SetOption(std::unique_ptr<ServerBuilderOption> option);
+
/// Tries to bind \a server to the given \a addr.
///
/// It can be invoked multiple times.
@@ -140,6 +143,7 @@ class ServerBuilder {
int max_message_size_;
grpc_compression_options compression_options_;
+ std::vector<std::unique_ptr<ServerBuilderOption>> options_;
std::vector<std::unique_ptr<NamedService<RpcService>>> services_;
std::vector<std::unique_ptr<NamedService<AsynchronousService>>>
async_services_;