Merge remote-tracking branch 'upstream/master' into reflection_header
diff --git a/BUILD b/BUILD
index b64f8ab..8147f08 100644
--- a/BUILD
+++ b/BUILD
@@ -1435,63 +1435,10 @@
     "src/cpp/ext/proto_server_reflection.h",
     "src/cpp/ext/proto_server_reflection.cc",
     "src/cpp/ext/proto_server_reflection_plugin.cc",
-    "src/cpp/ext/reflection.grpc.pb.cc",
-    "src/cpp/ext/reflection.pb.cc",
+    "src/proto/grpc/reflection/v1alpha/reflection.proto",
   ],
   hdrs = [
     "include/grpc++/ext/proto_server_reflection_plugin.h",
-    "include/grpc++/ext/reflection.grpc.pb.h",
-    "include/grpc++/ext/reflection.pb.h",
-    "include/grpc++/impl/codegen/proto_utils.h",
-    "include/grpc++/impl/codegen/async_stream.h",
-    "include/grpc++/impl/codegen/async_unary_call.h",
-    "include/grpc++/impl/codegen/call.h",
-    "include/grpc++/impl/codegen/call_hook.h",
-    "include/grpc++/impl/codegen/channel_interface.h",
-    "include/grpc++/impl/codegen/client_context.h",
-    "include/grpc++/impl/codegen/client_unary_call.h",
-    "include/grpc++/impl/codegen/completion_queue.h",
-    "include/grpc++/impl/codegen/completion_queue_tag.h",
-    "include/grpc++/impl/codegen/config.h",
-    "include/grpc++/impl/codegen/core_codegen_interface.h",
-    "include/grpc++/impl/codegen/create_auth_context.h",
-    "include/grpc++/impl/codegen/grpc_library.h",
-    "include/grpc++/impl/codegen/method_handler_impl.h",
-    "include/grpc++/impl/codegen/rpc_method.h",
-    "include/grpc++/impl/codegen/rpc_service_method.h",
-    "include/grpc++/impl/codegen/security/auth_context.h",
-    "include/grpc++/impl/codegen/serialization_traits.h",
-    "include/grpc++/impl/codegen/server_context.h",
-    "include/grpc++/impl/codegen/server_interface.h",
-    "include/grpc++/impl/codegen/service_type.h",
-    "include/grpc++/impl/codegen/status.h",
-    "include/grpc++/impl/codegen/status_code_enum.h",
-    "include/grpc++/impl/codegen/status_helper.h",
-    "include/grpc++/impl/codegen/string_ref.h",
-    "include/grpc++/impl/codegen/stub_options.h",
-    "include/grpc++/impl/codegen/sync.h",
-    "include/grpc++/impl/codegen/sync_cxx11.h",
-    "include/grpc++/impl/codegen/sync_no_cxx11.h",
-    "include/grpc++/impl/codegen/sync_stream.h",
-    "include/grpc++/impl/codegen/time.h",
-    "include/grpc/impl/codegen/byte_buffer_reader.h",
-    "include/grpc/impl/codegen/compression_types.h",
-    "include/grpc/impl/codegen/connectivity_state.h",
-    "include/grpc/impl/codegen/grpc_types.h",
-    "include/grpc/impl/codegen/propagation_bits.h",
-    "include/grpc/impl/codegen/status.h",
-    "include/grpc/impl/codegen/atm.h",
-    "include/grpc/impl/codegen/atm_gcc_atomic.h",
-    "include/grpc/impl/codegen/atm_gcc_sync.h",
-    "include/grpc/impl/codegen/atm_windows.h",
-    "include/grpc/impl/codegen/gpr_types.h",
-    "include/grpc/impl/codegen/port_platform.h",
-    "include/grpc/impl/codegen/slice.h",
-    "include/grpc/impl/codegen/sync.h",
-    "include/grpc/impl/codegen/sync_generic.h",
-    "include/grpc/impl/codegen/sync_posix.h",
-    "include/grpc/impl/codegen/sync_windows.h",
-    "include/grpc++/impl/codegen/config_protobuf.h",
   ],
   includes = [
     "include",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8f352aa..8f4b190 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1180,8 +1180,7 @@
 add_library(grpc++_reflection
   src/cpp/ext/proto_server_reflection.cc
   src/cpp/ext/proto_server_reflection_plugin.cc
-  src/cpp/ext/reflection.grpc.pb.cc
-  src/cpp/ext/reflection.pb.cc
+  src/proto/grpc/reflection/v1alpha/reflection.proto
 )
 
 target_include_directories(grpc++_reflection
@@ -1199,58 +1198,6 @@
 
 foreach(_hdr
   include/grpc++/ext/proto_server_reflection_plugin.h
-  include/grpc++/ext/reflection.grpc.pb.h
-  include/grpc++/ext/reflection.pb.h
-  include/grpc++/impl/codegen/proto_utils.h
-  include/grpc++/impl/codegen/async_stream.h
-  include/grpc++/impl/codegen/async_unary_call.h
-  include/grpc++/impl/codegen/call.h
-  include/grpc++/impl/codegen/call_hook.h
-  include/grpc++/impl/codegen/channel_interface.h
-  include/grpc++/impl/codegen/client_context.h
-  include/grpc++/impl/codegen/client_unary_call.h
-  include/grpc++/impl/codegen/completion_queue.h
-  include/grpc++/impl/codegen/completion_queue_tag.h
-  include/grpc++/impl/codegen/config.h
-  include/grpc++/impl/codegen/core_codegen_interface.h
-  include/grpc++/impl/codegen/create_auth_context.h
-  include/grpc++/impl/codegen/grpc_library.h
-  include/grpc++/impl/codegen/method_handler_impl.h
-  include/grpc++/impl/codegen/rpc_method.h
-  include/grpc++/impl/codegen/rpc_service_method.h
-  include/grpc++/impl/codegen/security/auth_context.h
-  include/grpc++/impl/codegen/serialization_traits.h
-  include/grpc++/impl/codegen/server_context.h
-  include/grpc++/impl/codegen/server_interface.h
-  include/grpc++/impl/codegen/service_type.h
-  include/grpc++/impl/codegen/status.h
-  include/grpc++/impl/codegen/status_code_enum.h
-  include/grpc++/impl/codegen/status_helper.h
-  include/grpc++/impl/codegen/string_ref.h
-  include/grpc++/impl/codegen/stub_options.h
-  include/grpc++/impl/codegen/sync.h
-  include/grpc++/impl/codegen/sync_cxx11.h
-  include/grpc++/impl/codegen/sync_no_cxx11.h
-  include/grpc++/impl/codegen/sync_stream.h
-  include/grpc++/impl/codegen/time.h
-  include/grpc/impl/codegen/byte_buffer_reader.h
-  include/grpc/impl/codegen/compression_types.h
-  include/grpc/impl/codegen/connectivity_state.h
-  include/grpc/impl/codegen/grpc_types.h
-  include/grpc/impl/codegen/propagation_bits.h
-  include/grpc/impl/codegen/status.h
-  include/grpc/impl/codegen/atm.h
-  include/grpc/impl/codegen/atm_gcc_atomic.h
-  include/grpc/impl/codegen/atm_gcc_sync.h
-  include/grpc/impl/codegen/atm_windows.h
-  include/grpc/impl/codegen/gpr_types.h
-  include/grpc/impl/codegen/port_platform.h
-  include/grpc/impl/codegen/slice.h
-  include/grpc/impl/codegen/sync.h
-  include/grpc/impl/codegen/sync_generic.h
-  include/grpc/impl/codegen/sync_posix.h
-  include/grpc/impl/codegen/sync_windows.h
-  include/grpc++/impl/codegen/config_protobuf.h
 )
   string(REPLACE "include/" "" _path ${_hdr})
   get_filename_component(_path ${_path} PATH)
diff --git a/Makefile b/Makefile
index 2729e3b..cd10ea2 100644
--- a/Makefile
+++ b/Makefile
@@ -1228,9 +1228,9 @@
 pc_cxx_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++_unsecure.pc
 
 ifeq ($(EMBED_OPENSSL),true)
-privatelibs_cxx:  $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a
+privatelibs_cxx:  $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a $(LIBDIR)/$(CONFIG)/libboringssl_test_util.a $(LIBDIR)/$(CONFIG)/libboringssl_aes_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_asn1_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_base64_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bio_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bn_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_bytestring_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_aead_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cipher_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_cmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ed25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x25519_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_dh_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_digest_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ec_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ecdsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_err_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_extra_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_evp_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pbkdf_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_hmac_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs12_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_pkcs8_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_poly1305_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_rsa_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_x509_test_lib.a $(LIBDIR)/$(CONFIG)/libboringssl_ssl_test_lib.a
 else
-privatelibs_cxx:  $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a
+privatelibs_cxx:  $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_test.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libinterop_client_helper.a $(LIBDIR)/$(CONFIG)/libinterop_client_main.a $(LIBDIR)/$(CONFIG)/libinterop_server_helper.a $(LIBDIR)/$(CONFIG)/libinterop_server_lib.a $(LIBDIR)/$(CONFIG)/libinterop_server_main.a $(LIBDIR)/$(CONFIG)/libqps.a
 endif
 
 
@@ -3795,66 +3795,65 @@
 endif
 
 
+LIBGRPC++_PROTO_REFLECTION_DESC_DB_SRC = \
+    test/cpp/util/proto_reflection_descriptor_database.cc \
+    $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \
+
+PUBLIC_HEADERS_CXX += \
+    include/grpc++/impl/codegen/config_protobuf.h \
+
+LIBGRPC++_PROTO_REFLECTION_DESC_DB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_PROTO_REFLECTION_DESC_DB_SRC))))
+
+
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure libraries if you don't have OpenSSL.
+
+$(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a: openssl_dep_error
+
+
+else
+
+ifeq ($(NO_PROTOBUF),true)
+
+# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay.
+
+$(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a: protobuf_dep_error
+
+
+else
+
+$(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_PROTO_REFLECTION_DESC_DB_OBJS) 
+	$(E) "[AR]      Creating $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a
+	$(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBGRPC++_PROTO_REFLECTION_DESC_DB_OBJS) 
+ifeq ($(SYSTEM),Darwin)
+	$(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a
+endif
+
+
+
+
+endif
+
+endif
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(LIBGRPC++_PROTO_REFLECTION_DESC_DB_OBJS:.o=.dep)
+endif
+endif
+$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+
+
 LIBGRPC++_REFLECTION_SRC = \
     src/cpp/ext/proto_server_reflection.cc \
     src/cpp/ext/proto_server_reflection_plugin.cc \
-    src/cpp/ext/reflection.grpc.pb.cc \
-    src/cpp/ext/reflection.pb.cc \
+    $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \
 
 PUBLIC_HEADERS_CXX += \
     include/grpc++/ext/proto_server_reflection_plugin.h \
-    include/grpc++/ext/reflection.grpc.pb.h \
-    include/grpc++/ext/reflection.pb.h \
-    include/grpc++/impl/codegen/proto_utils.h \
-    include/grpc++/impl/codegen/async_stream.h \
-    include/grpc++/impl/codegen/async_unary_call.h \
-    include/grpc++/impl/codegen/call.h \
-    include/grpc++/impl/codegen/call_hook.h \
-    include/grpc++/impl/codegen/channel_interface.h \
-    include/grpc++/impl/codegen/client_context.h \
-    include/grpc++/impl/codegen/client_unary_call.h \
-    include/grpc++/impl/codegen/completion_queue.h \
-    include/grpc++/impl/codegen/completion_queue_tag.h \
-    include/grpc++/impl/codegen/config.h \
-    include/grpc++/impl/codegen/core_codegen_interface.h \
-    include/grpc++/impl/codegen/create_auth_context.h \
-    include/grpc++/impl/codegen/grpc_library.h \
-    include/grpc++/impl/codegen/method_handler_impl.h \
-    include/grpc++/impl/codegen/rpc_method.h \
-    include/grpc++/impl/codegen/rpc_service_method.h \
-    include/grpc++/impl/codegen/security/auth_context.h \
-    include/grpc++/impl/codegen/serialization_traits.h \
-    include/grpc++/impl/codegen/server_context.h \
-    include/grpc++/impl/codegen/server_interface.h \
-    include/grpc++/impl/codegen/service_type.h \
-    include/grpc++/impl/codegen/status.h \
-    include/grpc++/impl/codegen/status_code_enum.h \
-    include/grpc++/impl/codegen/status_helper.h \
-    include/grpc++/impl/codegen/string_ref.h \
-    include/grpc++/impl/codegen/stub_options.h \
-    include/grpc++/impl/codegen/sync.h \
-    include/grpc++/impl/codegen/sync_cxx11.h \
-    include/grpc++/impl/codegen/sync_no_cxx11.h \
-    include/grpc++/impl/codegen/sync_stream.h \
-    include/grpc++/impl/codegen/time.h \
-    include/grpc/impl/codegen/byte_buffer_reader.h \
-    include/grpc/impl/codegen/compression_types.h \
-    include/grpc/impl/codegen/connectivity_state.h \
-    include/grpc/impl/codegen/grpc_types.h \
-    include/grpc/impl/codegen/propagation_bits.h \
-    include/grpc/impl/codegen/status.h \
-    include/grpc/impl/codegen/atm.h \
-    include/grpc/impl/codegen/atm_gcc_atomic.h \
-    include/grpc/impl/codegen/atm_gcc_sync.h \
-    include/grpc/impl/codegen/atm_windows.h \
-    include/grpc/impl/codegen/gpr_types.h \
-    include/grpc/impl/codegen/port_platform.h \
-    include/grpc/impl/codegen/slice.h \
-    include/grpc/impl/codegen/sync.h \
-    include/grpc/impl/codegen/sync_generic.h \
-    include/grpc/impl/codegen/sync_posix.h \
-    include/grpc/impl/codegen/sync_windows.h \
-    include/grpc++/impl/codegen/config_protobuf.h \
 
 LIBGRPC++_REFLECTION_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_SRC))))
 
@@ -3917,55 +3916,8 @@
 -include $(LIBGRPC++_REFLECTION_OBJS:.o=.dep)
 endif
 endif
-
-
-LIBGRPC++_REFLECTION_CODEGEN_SRC = \
-    $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \
-
-PUBLIC_HEADERS_CXX += \
-
-LIBGRPC++_REFLECTION_CODEGEN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_REFLECTION_CODEGEN_SRC))))
-
-
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure libraries if you don't have OpenSSL.
-
-$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: openssl_dep_error
-
-
-else
-
-ifeq ($(NO_PROTOBUF),true)
-
-# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay.
-
-$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: protobuf_dep_error
-
-
-else
-
-$(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) 
-	$(E) "[AR]      Creating $@"
-	$(Q) mkdir -p `dirname $@`
-	$(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a
-	$(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a $(LIBGRPC++_REFLECTION_CODEGEN_OBJS) 
-ifeq ($(SYSTEM),Darwin)
-	$(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libgrpc++_reflection_codegen.a
-endif
-
-
-
-
-endif
-
-endif
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(LIBGRPC++_REFLECTION_CODEGEN_OBJS:.o=.dep)
-endif
-endif
+$(OBJDIR)/$(CONFIG)/src/cpp/ext/proto_server_reflection.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/src/cpp/ext/proto_server_reflection_plugin.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
 
 
 LIBGRPC++_TEST_SRC = \
@@ -4365,10 +4317,11 @@
     test/cpp/util/cli_credentials.cc \
     test/cpp/util/grpc_tool.cc \
     test/cpp/util/proto_file_parser.cc \
-    test/cpp/util/proto_reflection_descriptor_database.cc \
     test/cpp/util/service_describer.cc \
+    $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc \
 
 PUBLIC_HEADERS_CXX += \
+    include/grpc++/impl/codegen/config_protobuf.h \
 
 LIBGRPC_CLI_LIBS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CLI_LIBS_SRC))))
 
@@ -4412,6 +4365,11 @@
 -include $(LIBGRPC_CLI_LIBS_OBJS:.o=.dep)
 endif
 endif
+$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_credentials.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_tool.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_file_parser.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/service_describer.o: $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.pb.cc $(GENDIR)/src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.cc
 
 
 LIBGRPC_PLUGIN_SUPPORT_SRC = \
@@ -11695,16 +11653,16 @@
 
 else
 
-$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(BINDIR)/$(CONFIG)/grpc_cli: $(PROTOBUF_DEP) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli
+	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_CLI_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_cli
 
 endif
 
 endif
 
-$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
+$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_cli.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_config.a
 
 deps_grpc_cli: $(GRPC_CLI_OBJS:.o=.dep)
 
@@ -11936,7 +11894,6 @@
     $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \
     $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \
     test/cpp/util/grpc_tool_test.cc \
-    test/cpp/util/string_ref_helper.cc \
 
 GRPC_TOOL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_TOOL_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -11958,22 +11915,20 @@
 
 else
 
-$(BINDIR)/$(CONFIG)/grpc_tool_test: $(PROTOBUF_DEP) $(GRPC_TOOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(BINDIR)/$(CONFIG)/grpc_tool_test: $(PROTOBUF_DEP) $(GRPC_TOOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_TOOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_tool_test
+	$(Q) $(LDXX) $(LDFLAGS) $(GRPC_TOOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/grpc_tool_test
 
 endif
 
 endif
 
-$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 
-$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo_messages.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/echo_messages.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 
-$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_tool_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_tool_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_cli_libs.a $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 
 deps_grpc_tool_test: $(GRPC_TOOL_TEST_OBJS:.o=.dep)
 
@@ -11983,7 +11938,6 @@
 endif
 endif
 $(OBJDIR)/$(CONFIG)/test/cpp/util/grpc_tool_test.o: $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
 
 
 GRPCLB_API_TEST_SRC = \
@@ -12363,7 +12317,6 @@
 
 PROTO_SERVER_REFLECTION_TEST_SRC = \
     test/cpp/end2end/proto_server_reflection_test.cc \
-    test/cpp/util/proto_reflection_descriptor_database.cc \
 
 PROTO_SERVER_REFLECTION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(PROTO_SERVER_REFLECTION_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
@@ -12385,18 +12338,16 @@
 
 else
 
-$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(BINDIR)/$(CONFIG)/proto_server_reflection_test: $(PROTOBUF_DEP) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test
+	$(Q) $(LDXX) $(LDFLAGS) $(PROTO_SERVER_REFLECTION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/proto_server_reflection_test
 
 endif
 
 endif
 
-$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-$(OBJDIR)/$(CONFIG)/test/cpp/util/proto_reflection_descriptor_database.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(OBJDIR)/$(CONFIG)/test/cpp/end2end/proto_server_reflection_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_proto_reflection_desc_db.a $(LIBDIR)/$(CONFIG)/libgrpc++_reflection.a $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 
 deps_proto_server_reflection_test: $(PROTO_SERVER_REFLECTION_TEST_OBJS:.o=.dep)
 
@@ -15867,8 +15818,6 @@
 src/cpp/common/secure_create_auth_context.cc: $(OPENSSL_DEP)
 src/cpp/ext/proto_server_reflection.cc: $(OPENSSL_DEP)
 src/cpp/ext/proto_server_reflection_plugin.cc: $(OPENSSL_DEP)
-src/cpp/ext/reflection.grpc.pb.cc: $(OPENSSL_DEP)
-src/cpp/ext/reflection.pb.cc: $(OPENSSL_DEP)
 src/cpp/server/secure_server_credentials.cc: $(OPENSSL_DEP)
 src/cpp/test/server_context_test_spouse.cc: $(OPENSSL_DEP)
 src/csharp/ext/grpc_csharp_ext.c: $(OPENSSL_DEP)
diff --git a/build.yaml b/build.yaml
index 8594380..f0fa61c 100644
--- a/build.yaml
+++ b/build.yaml
@@ -802,14 +802,8 @@
   - include/grpc++/impl/codegen/config_protobuf.h
 - name: grpc++_reflection_proto
   language: c++
-  public_headers:
-  - include/grpc++/ext/reflection.grpc.pb.h
-  - include/grpc++/ext/reflection.pb.h
   src:
-  - src/cpp/ext/reflection.grpc.pb.cc
-  - src/cpp/ext/reflection.pb.cc
-  uses:
-  - grpc++_codegen_proto
+  - src/proto/grpc/reflection/v1alpha/reflection.proto
 - name: thrift_util
   language: c++
   public_headers:
@@ -1007,6 +1001,18 @@
   - grpc++_codegen_base_src
   secure: check
   vs_project_guid: '{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}'
+- name: grpc++_proto_reflection_desc_db
+  build: private
+  language: c++
+  headers:
+  - test/cpp/util/proto_reflection_descriptor_database.h
+  src:
+  - test/cpp/util/proto_reflection_descriptor_database.cc
+  deps:
+  - grpc++
+  filegroups:
+  - grpc++_reflection_proto
+  - grpc++_config_proto
 - name: grpc++_reflection
   build: all
   language: c++
@@ -1021,11 +1027,6 @@
   - grpc++
   filegroups:
   - grpc++_reflection_proto
-- name: grpc++_reflection_codegen
-  build: private
-  language: c++
-  src:
-  - src/proto/grpc/reflection/v1alpha/reflection.proto
 - name: grpc++_test
   build: private
   language: c++
@@ -1098,18 +1099,19 @@
   - test/cpp/util/config_grpc_cli.h
   - test/cpp/util/grpc_tool.h
   - test/cpp/util/proto_file_parser.h
-  - test/cpp/util/proto_reflection_descriptor_database.h
   - test/cpp/util/service_describer.h
   src:
   - test/cpp/util/cli_call.cc
   - test/cpp/util/cli_credentials.cc
   - test/cpp/util/grpc_tool.cc
   - test/cpp/util/proto_file_parser.cc
-  - test/cpp/util/proto_reflection_descriptor_database.cc
   - test/cpp/util/service_describer.cc
   deps:
-  - grpc++_reflection
+  - grpc++_proto_reflection_desc_db
   - grpc++
+  filegroups:
+  - grpc++_reflection_proto
+  - grpc++_config_proto
 - name: grpc_plugin_support
   build: protoc
   language: c++
@@ -2857,7 +2859,7 @@
   - test/cpp/util/grpc_cli.cc
   deps:
   - grpc_cli_libs
-  - grpc++_reflection
+  - grpc++_proto_reflection_desc_db
   - grpc++
   - grpc
   - gpr
@@ -2934,16 +2936,15 @@
   gtest: true
   build: test
   language: c++
-  headers:
-  - test/cpp/util/string_ref_helper.h
   src:
   - src/proto/grpc/testing/echo.proto
   - src/proto/grpc/testing/echo_messages.proto
   - test/cpp/util/grpc_tool_test.cc
-  - test/cpp/util/string_ref_helper.cc
   deps:
   - grpc_cli_libs
+  - grpc++_proto_reflection_desc_db
   - grpc++_reflection
+  - grpc++_test_util
   - grpc_test_util
   - grpc++
   - grpc
@@ -2951,7 +2952,6 @@
   - gpr
   filegroups:
   - grpc++_codegen_proto
-  - grpc++_config_proto
 - name: grpclb_api_test
   gtest: true
   build: test
@@ -3091,12 +3091,10 @@
   gtest: true
   build: test
   language: c++
-  headers:
-  - test/cpp/util/proto_reflection_descriptor_database.h
   src:
   - test/cpp/end2end/proto_server_reflection_test.cc
-  - test/cpp/util/proto_reflection_descriptor_database.cc
   deps:
+  - grpc++_proto_reflection_desc_db
   - grpc++_reflection
   - grpc++_test_util
   - grpc_test_util
diff --git a/include/grpc++/ext/reflection.grpc.pb.h b/include/grpc++/ext/reflection.grpc.pb.h
deleted file mode 100644
index 151271c..0000000
--- a/include/grpc++/ext/reflection.grpc.pb.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-
-// Generated by tools/codegen/extensions/gen_reflection_proto.sh
-// If you make any local change, they will be lost.
-// source: reflection.proto
-// Original file comments:
-// Copyright 2016, 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.
-//
-// Service exported by server reflection
-//
-#ifndef GRPC_reflection_2eproto__INCLUDED
-#define GRPC_reflection_2eproto__INCLUDED
-
-#include <grpc++/ext/reflection.pb.h>
-
-#include <grpc++/impl/codegen/async_stream.h>
-#include <grpc++/impl/codegen/async_unary_call.h>
-#include <grpc++/impl/codegen/method_handler_impl.h>
-#include <grpc++/impl/codegen/proto_utils.h>
-#include <grpc++/impl/codegen/rpc_method.h>
-#include <grpc++/impl/codegen/service_type.h>
-#include <grpc++/impl/codegen/status.h>
-#include <grpc++/impl/codegen/stub_options.h>
-#include <grpc++/impl/codegen/sync_stream.h>
-
-namespace grpc {
-class CompletionQueue;
-class Channel;
-class RpcService;
-class ServerCompletionQueue;
-class ServerContext;
-}  // namespace grpc
-
-namespace grpc {
-namespace reflection {
-namespace v1alpha {
-
-class ServerReflection GRPC_FINAL {
- public:
-  class StubInterface {
-   public:
-    virtual ~StubInterface() {}
-    // The reflection service is structured as a bidirectional stream, ensuring
-    // all related requests go to a single server.
-    std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>> ServerReflectionInfo(::grpc::ClientContext* context) {
-      return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>>(ServerReflectionInfoRaw(context));
-    }
-    std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>> AsyncServerReflectionInfo(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>>(AsyncServerReflectionInfoRaw(context, cq, tag));
-    }
-  private:
-    virtual ::grpc::ClientReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* ServerReflectionInfoRaw(::grpc::ClientContext* context) = 0;
-    virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* AsyncServerReflectionInfoRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0;
-  };
-  class Stub GRPC_FINAL : public StubInterface {
-   public:
-    Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
-    std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>> ServerReflectionInfo(::grpc::ClientContext* context) {
-      return std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>>(ServerReflectionInfoRaw(context));
-    }
-    std::unique_ptr<  ::grpc::ClientAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>> AsyncServerReflectionInfo(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-      return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>>(AsyncServerReflectionInfoRaw(context, cq, tag));
-    }
-
-   private:
-    std::shared_ptr< ::grpc::ChannelInterface> channel_;
-    ::grpc::ClientReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* ServerReflectionInfoRaw(::grpc::ClientContext* context) GRPC_OVERRIDE;
-    ::grpc::ClientAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* AsyncServerReflectionInfoRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) GRPC_OVERRIDE;
-    const ::grpc::RpcMethod rpcmethod_ServerReflectionInfo_;
-  };
-  static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
-
-  class Service : public ::grpc::Service {
-   public:
-    Service();
-    virtual ~Service();
-    // The reflection service is structured as a bidirectional stream, ensuring
-    // all related requests go to a single server.
-    virtual ::grpc::Status ServerReflectionInfo(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionResponse, ::grpc::reflection::v1alpha::ServerReflectionRequest>* stream);
-  };
-  template <class BaseClass>
-  class WithAsyncMethod_ServerReflectionInfo : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service *service) {}
-   public:
-    WithAsyncMethod_ServerReflectionInfo() {
-      ::grpc::Service::MarkMethodAsync(0);
-    }
-    ~WithAsyncMethod_ServerReflectionInfo() GRPC_OVERRIDE {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status ServerReflectionInfo(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionResponse, ::grpc::reflection::v1alpha::ServerReflectionRequest>* stream) GRPC_FINAL GRPC_OVERRIDE {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-    void RequestServerReflectionInfo(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionResponse, ::grpc::reflection::v1alpha::ServerReflectionRequest>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
-      ::grpc::Service::RequestAsyncBidiStreaming(0, context, stream, new_call_cq, notification_cq, tag);
-    }
-  };
-  typedef WithAsyncMethod_ServerReflectionInfo<Service > AsyncService;
-  template <class BaseClass>
-  class WithGenericMethod_ServerReflectionInfo : public BaseClass {
-   private:
-    void BaseClassMustBeDerivedFromService(const Service *service) {}
-   public:
-    WithGenericMethod_ServerReflectionInfo() {
-      ::grpc::Service::MarkMethodGeneric(0);
-    }
-    ~WithGenericMethod_ServerReflectionInfo() GRPC_OVERRIDE {
-      BaseClassMustBeDerivedFromService(this);
-    }
-    // disable synchronous version of this method
-    ::grpc::Status ServerReflectionInfo(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionResponse, ::grpc::reflection::v1alpha::ServerReflectionRequest>* stream) GRPC_FINAL GRPC_OVERRIDE {
-      abort();
-      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-    }
-  };
-  typedef Service StreamedUnaryService;
-  typedef Service SplitStreamedService;
-  typedef Service StreamedService;
-};
-
-}  // namespace v1alpha
-}  // namespace reflection
-}  // namespace grpc
-
-
-#endif  // GRPC_reflection_2eproto__INCLUDED
diff --git a/include/grpc++/ext/reflection.pb.h b/include/grpc++/ext/reflection.pb.h
deleted file mode 100644
index 6e645af..0000000
--- a/include/grpc++/ext/reflection.pb.h
+++ /dev/null
@@ -1,2125 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-
-// Generated by tools/codegen/extensions/gen_reflection_proto.sh
-// source: reflection.proto
-
-#ifndef PROTOBUF_reflection_2eproto__INCLUDED
-#define PROTOBUF_reflection_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 3001000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please update
-#error your headers.
-#endif
-#if 3001000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/unknown_field_set.h>
-// @@protoc_insertion_point(includes)
-
-namespace grpc {
-namespace reflection {
-namespace v1alpha {
-
-// Internal implementation detail -- do not call these.
-void protobuf_AddDesc_reflection_2eproto();
-void protobuf_InitDefaults_reflection_2eproto();
-void protobuf_AssignDesc_reflection_2eproto();
-void protobuf_ShutdownFile_reflection_2eproto();
-
-class ErrorResponse;
-class ExtensionNumberResponse;
-class ExtensionRequest;
-class FileDescriptorResponse;
-class ListServiceResponse;
-class ServerReflectionRequest;
-class ServerReflectionResponse;
-class ServiceResponse;
-
-// ===================================================================
-
-class ServerReflectionRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ServerReflectionRequest) */ {
- public:
-  ServerReflectionRequest();
-  virtual ~ServerReflectionRequest();
-
-  ServerReflectionRequest(const ServerReflectionRequest& from);
-
-  inline ServerReflectionRequest& operator=(const ServerReflectionRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ServerReflectionRequest& default_instance();
-
-  enum MessageRequestCase {
-    kFileByFilename = 3,
-    kFileContainingSymbol = 4,
-    kFileContainingExtension = 5,
-    kAllExtensionNumbersOfType = 6,
-    kListServices = 7,
-    MESSAGE_REQUEST_NOT_SET = 0,
-  };
-
-  static const ServerReflectionRequest* internal_default_instance();
-
-  void Swap(ServerReflectionRequest* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ServerReflectionRequest* New() const { return New(NULL); }
-
-  ServerReflectionRequest* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ServerReflectionRequest& from);
-  void MergeFrom(const ServerReflectionRequest& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ServerReflectionRequest* other);
-  void UnsafeMergeFrom(const ServerReflectionRequest& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional string host = 1;
-  void clear_host();
-  static const int kHostFieldNumber = 1;
-  const ::std::string& host() const;
-  void set_host(const ::std::string& value);
-  void set_host(const char* value);
-  void set_host(const char* value, size_t size);
-  ::std::string* mutable_host();
-  ::std::string* release_host();
-  void set_allocated_host(::std::string* host);
-
-  // optional string file_by_filename = 3;
-  private:
-  bool has_file_by_filename() const;
-  public:
-  void clear_file_by_filename();
-  static const int kFileByFilenameFieldNumber = 3;
-  const ::std::string& file_by_filename() const;
-  void set_file_by_filename(const ::std::string& value);
-  void set_file_by_filename(const char* value);
-  void set_file_by_filename(const char* value, size_t size);
-  ::std::string* mutable_file_by_filename();
-  ::std::string* release_file_by_filename();
-  void set_allocated_file_by_filename(::std::string* file_by_filename);
-
-  // optional string file_containing_symbol = 4;
-  private:
-  bool has_file_containing_symbol() const;
-  public:
-  void clear_file_containing_symbol();
-  static const int kFileContainingSymbolFieldNumber = 4;
-  const ::std::string& file_containing_symbol() const;
-  void set_file_containing_symbol(const ::std::string& value);
-  void set_file_containing_symbol(const char* value);
-  void set_file_containing_symbol(const char* value, size_t size);
-  ::std::string* mutable_file_containing_symbol();
-  ::std::string* release_file_containing_symbol();
-  void set_allocated_file_containing_symbol(::std::string* file_containing_symbol);
-
-  // optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-  bool has_file_containing_extension() const;
-  void clear_file_containing_extension();
-  static const int kFileContainingExtensionFieldNumber = 5;
-  const ::grpc::reflection::v1alpha::ExtensionRequest& file_containing_extension() const;
-  ::grpc::reflection::v1alpha::ExtensionRequest* mutable_file_containing_extension();
-  ::grpc::reflection::v1alpha::ExtensionRequest* release_file_containing_extension();
-  void set_allocated_file_containing_extension(::grpc::reflection::v1alpha::ExtensionRequest* file_containing_extension);
-
-  // optional string all_extension_numbers_of_type = 6;
-  private:
-  bool has_all_extension_numbers_of_type() const;
-  public:
-  void clear_all_extension_numbers_of_type();
-  static const int kAllExtensionNumbersOfTypeFieldNumber = 6;
-  const ::std::string& all_extension_numbers_of_type() const;
-  void set_all_extension_numbers_of_type(const ::std::string& value);
-  void set_all_extension_numbers_of_type(const char* value);
-  void set_all_extension_numbers_of_type(const char* value, size_t size);
-  ::std::string* mutable_all_extension_numbers_of_type();
-  ::std::string* release_all_extension_numbers_of_type();
-  void set_allocated_all_extension_numbers_of_type(::std::string* all_extension_numbers_of_type);
-
-  // optional string list_services = 7;
-  private:
-  bool has_list_services() const;
-  public:
-  void clear_list_services();
-  static const int kListServicesFieldNumber = 7;
-  const ::std::string& list_services() const;
-  void set_list_services(const ::std::string& value);
-  void set_list_services(const char* value);
-  void set_list_services(const char* value, size_t size);
-  ::std::string* mutable_list_services();
-  ::std::string* release_list_services();
-  void set_allocated_list_services(::std::string* list_services);
-
-  MessageRequestCase message_request_case() const;
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ServerReflectionRequest)
- private:
-  inline void set_has_file_by_filename();
-  inline void set_has_file_containing_symbol();
-  inline void set_has_file_containing_extension();
-  inline void set_has_all_extension_numbers_of_type();
-  inline void set_has_list_services();
-
-  inline bool has_message_request() const;
-  void clear_message_request();
-  inline void clear_has_message_request();
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr host_;
-  union MessageRequestUnion {
-    MessageRequestUnion() {}
-    ::google::protobuf::internal::ArenaStringPtr file_by_filename_;
-    ::google::protobuf::internal::ArenaStringPtr file_containing_symbol_;
-    ::grpc::reflection::v1alpha::ExtensionRequest* file_containing_extension_;
-    ::google::protobuf::internal::ArenaStringPtr all_extension_numbers_of_type_;
-    ::google::protobuf::internal::ArenaStringPtr list_services_;
-  } message_request_;
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _oneof_case_[1];
-
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ServerReflectionRequest> ServerReflectionRequest_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ExtensionRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ExtensionRequest) */ {
- public:
-  ExtensionRequest();
-  virtual ~ExtensionRequest();
-
-  ExtensionRequest(const ExtensionRequest& from);
-
-  inline ExtensionRequest& operator=(const ExtensionRequest& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ExtensionRequest& default_instance();
-
-  static const ExtensionRequest* internal_default_instance();
-
-  void Swap(ExtensionRequest* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ExtensionRequest* New() const { return New(NULL); }
-
-  ExtensionRequest* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ExtensionRequest& from);
-  void MergeFrom(const ExtensionRequest& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ExtensionRequest* other);
-  void UnsafeMergeFrom(const ExtensionRequest& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional string containing_type = 1;
-  void clear_containing_type();
-  static const int kContainingTypeFieldNumber = 1;
-  const ::std::string& containing_type() const;
-  void set_containing_type(const ::std::string& value);
-  void set_containing_type(const char* value);
-  void set_containing_type(const char* value, size_t size);
-  ::std::string* mutable_containing_type();
-  ::std::string* release_containing_type();
-  void set_allocated_containing_type(::std::string* containing_type);
-
-  // optional int32 extension_number = 2;
-  void clear_extension_number();
-  static const int kExtensionNumberFieldNumber = 2;
-  ::google::protobuf::int32 extension_number() const;
-  void set_extension_number(::google::protobuf::int32 value);
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ExtensionRequest)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr containing_type_;
-  ::google::protobuf::int32 extension_number_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ExtensionRequest> ExtensionRequest_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ServerReflectionResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ServerReflectionResponse) */ {
- public:
-  ServerReflectionResponse();
-  virtual ~ServerReflectionResponse();
-
-  ServerReflectionResponse(const ServerReflectionResponse& from);
-
-  inline ServerReflectionResponse& operator=(const ServerReflectionResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ServerReflectionResponse& default_instance();
-
-  enum MessageResponseCase {
-    kFileDescriptorResponse = 4,
-    kAllExtensionNumbersResponse = 5,
-    kListServicesResponse = 6,
-    kErrorResponse = 7,
-    MESSAGE_RESPONSE_NOT_SET = 0,
-  };
-
-  static const ServerReflectionResponse* internal_default_instance();
-
-  void Swap(ServerReflectionResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ServerReflectionResponse* New() const { return New(NULL); }
-
-  ServerReflectionResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ServerReflectionResponse& from);
-  void MergeFrom(const ServerReflectionResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ServerReflectionResponse* other);
-  void UnsafeMergeFrom(const ServerReflectionResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional string valid_host = 1;
-  void clear_valid_host();
-  static const int kValidHostFieldNumber = 1;
-  const ::std::string& valid_host() const;
-  void set_valid_host(const ::std::string& value);
-  void set_valid_host(const char* value);
-  void set_valid_host(const char* value, size_t size);
-  ::std::string* mutable_valid_host();
-  ::std::string* release_valid_host();
-  void set_allocated_valid_host(::std::string* valid_host);
-
-  // optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-  bool has_original_request() const;
-  void clear_original_request();
-  static const int kOriginalRequestFieldNumber = 2;
-  const ::grpc::reflection::v1alpha::ServerReflectionRequest& original_request() const;
-  ::grpc::reflection::v1alpha::ServerReflectionRequest* mutable_original_request();
-  ::grpc::reflection::v1alpha::ServerReflectionRequest* release_original_request();
-  void set_allocated_original_request(::grpc::reflection::v1alpha::ServerReflectionRequest* original_request);
-
-  // optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-  bool has_file_descriptor_response() const;
-  void clear_file_descriptor_response();
-  static const int kFileDescriptorResponseFieldNumber = 4;
-  const ::grpc::reflection::v1alpha::FileDescriptorResponse& file_descriptor_response() const;
-  ::grpc::reflection::v1alpha::FileDescriptorResponse* mutable_file_descriptor_response();
-  ::grpc::reflection::v1alpha::FileDescriptorResponse* release_file_descriptor_response();
-  void set_allocated_file_descriptor_response(::grpc::reflection::v1alpha::FileDescriptorResponse* file_descriptor_response);
-
-  // optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-  bool has_all_extension_numbers_response() const;
-  void clear_all_extension_numbers_response();
-  static const int kAllExtensionNumbersResponseFieldNumber = 5;
-  const ::grpc::reflection::v1alpha::ExtensionNumberResponse& all_extension_numbers_response() const;
-  ::grpc::reflection::v1alpha::ExtensionNumberResponse* mutable_all_extension_numbers_response();
-  ::grpc::reflection::v1alpha::ExtensionNumberResponse* release_all_extension_numbers_response();
-  void set_allocated_all_extension_numbers_response(::grpc::reflection::v1alpha::ExtensionNumberResponse* all_extension_numbers_response);
-
-  // optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-  bool has_list_services_response() const;
-  void clear_list_services_response();
-  static const int kListServicesResponseFieldNumber = 6;
-  const ::grpc::reflection::v1alpha::ListServiceResponse& list_services_response() const;
-  ::grpc::reflection::v1alpha::ListServiceResponse* mutable_list_services_response();
-  ::grpc::reflection::v1alpha::ListServiceResponse* release_list_services_response();
-  void set_allocated_list_services_response(::grpc::reflection::v1alpha::ListServiceResponse* list_services_response);
-
-  // optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-  bool has_error_response() const;
-  void clear_error_response();
-  static const int kErrorResponseFieldNumber = 7;
-  const ::grpc::reflection::v1alpha::ErrorResponse& error_response() const;
-  ::grpc::reflection::v1alpha::ErrorResponse* mutable_error_response();
-  ::grpc::reflection::v1alpha::ErrorResponse* release_error_response();
-  void set_allocated_error_response(::grpc::reflection::v1alpha::ErrorResponse* error_response);
-
-  MessageResponseCase message_response_case() const;
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ServerReflectionResponse)
- private:
-  inline void set_has_file_descriptor_response();
-  inline void set_has_all_extension_numbers_response();
-  inline void set_has_list_services_response();
-  inline void set_has_error_response();
-
-  inline bool has_message_response() const;
-  void clear_message_response();
-  inline void clear_has_message_response();
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr valid_host_;
-  ::grpc::reflection::v1alpha::ServerReflectionRequest* original_request_;
-  union MessageResponseUnion {
-    MessageResponseUnion() {}
-    ::grpc::reflection::v1alpha::FileDescriptorResponse* file_descriptor_response_;
-    ::grpc::reflection::v1alpha::ExtensionNumberResponse* all_extension_numbers_response_;
-    ::grpc::reflection::v1alpha::ListServiceResponse* list_services_response_;
-    ::grpc::reflection::v1alpha::ErrorResponse* error_response_;
-  } message_response_;
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _oneof_case_[1];
-
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ServerReflectionResponse> ServerReflectionResponse_default_instance_;
-
-// -------------------------------------------------------------------
-
-class FileDescriptorResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.FileDescriptorResponse) */ {
- public:
-  FileDescriptorResponse();
-  virtual ~FileDescriptorResponse();
-
-  FileDescriptorResponse(const FileDescriptorResponse& from);
-
-  inline FileDescriptorResponse& operator=(const FileDescriptorResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const FileDescriptorResponse& default_instance();
-
-  static const FileDescriptorResponse* internal_default_instance();
-
-  void Swap(FileDescriptorResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline FileDescriptorResponse* New() const { return New(NULL); }
-
-  FileDescriptorResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const FileDescriptorResponse& from);
-  void MergeFrom(const FileDescriptorResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(FileDescriptorResponse* other);
-  void UnsafeMergeFrom(const FileDescriptorResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // repeated bytes file_descriptor_proto = 1;
-  int file_descriptor_proto_size() const;
-  void clear_file_descriptor_proto();
-  static const int kFileDescriptorProtoFieldNumber = 1;
-  const ::std::string& file_descriptor_proto(int index) const;
-  ::std::string* mutable_file_descriptor_proto(int index);
-  void set_file_descriptor_proto(int index, const ::std::string& value);
-  void set_file_descriptor_proto(int index, const char* value);
-  void set_file_descriptor_proto(int index, const void* value, size_t size);
-  ::std::string* add_file_descriptor_proto();
-  void add_file_descriptor_proto(const ::std::string& value);
-  void add_file_descriptor_proto(const char* value);
-  void add_file_descriptor_proto(const void* value, size_t size);
-  const ::google::protobuf::RepeatedPtrField< ::std::string>& file_descriptor_proto() const;
-  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_file_descriptor_proto();
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.FileDescriptorResponse)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedPtrField< ::std::string> file_descriptor_proto_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<FileDescriptorResponse> FileDescriptorResponse_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ExtensionNumberResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ExtensionNumberResponse) */ {
- public:
-  ExtensionNumberResponse();
-  virtual ~ExtensionNumberResponse();
-
-  ExtensionNumberResponse(const ExtensionNumberResponse& from);
-
-  inline ExtensionNumberResponse& operator=(const ExtensionNumberResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ExtensionNumberResponse& default_instance();
-
-  static const ExtensionNumberResponse* internal_default_instance();
-
-  void Swap(ExtensionNumberResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ExtensionNumberResponse* New() const { return New(NULL); }
-
-  ExtensionNumberResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ExtensionNumberResponse& from);
-  void MergeFrom(const ExtensionNumberResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ExtensionNumberResponse* other);
-  void UnsafeMergeFrom(const ExtensionNumberResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional string base_type_name = 1;
-  void clear_base_type_name();
-  static const int kBaseTypeNameFieldNumber = 1;
-  const ::std::string& base_type_name() const;
-  void set_base_type_name(const ::std::string& value);
-  void set_base_type_name(const char* value);
-  void set_base_type_name(const char* value, size_t size);
-  ::std::string* mutable_base_type_name();
-  ::std::string* release_base_type_name();
-  void set_allocated_base_type_name(::std::string* base_type_name);
-
-  // repeated int32 extension_number = 2;
-  int extension_number_size() const;
-  void clear_extension_number();
-  static const int kExtensionNumberFieldNumber = 2;
-  ::google::protobuf::int32 extension_number(int index) const;
-  void set_extension_number(int index, ::google::protobuf::int32 value);
-  void add_extension_number(::google::protobuf::int32 value);
-  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-      extension_number() const;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-      mutable_extension_number();
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ExtensionNumberResponse)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > extension_number_;
-  mutable int _extension_number_cached_byte_size_;
-  ::google::protobuf::internal::ArenaStringPtr base_type_name_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ExtensionNumberResponse> ExtensionNumberResponse_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ListServiceResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ListServiceResponse) */ {
- public:
-  ListServiceResponse();
-  virtual ~ListServiceResponse();
-
-  ListServiceResponse(const ListServiceResponse& from);
-
-  inline ListServiceResponse& operator=(const ListServiceResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ListServiceResponse& default_instance();
-
-  static const ListServiceResponse* internal_default_instance();
-
-  void Swap(ListServiceResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ListServiceResponse* New() const { return New(NULL); }
-
-  ListServiceResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ListServiceResponse& from);
-  void MergeFrom(const ListServiceResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ListServiceResponse* other);
-  void UnsafeMergeFrom(const ListServiceResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-  int service_size() const;
-  void clear_service();
-  static const int kServiceFieldNumber = 1;
-  const ::grpc::reflection::v1alpha::ServiceResponse& service(int index) const;
-  ::grpc::reflection::v1alpha::ServiceResponse* mutable_service(int index);
-  ::grpc::reflection::v1alpha::ServiceResponse* add_service();
-  ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >*
-      mutable_service();
-  const ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >&
-      service() const;
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ListServiceResponse)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse > service_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ListServiceResponse> ListServiceResponse_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ServiceResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ServiceResponse) */ {
- public:
-  ServiceResponse();
-  virtual ~ServiceResponse();
-
-  ServiceResponse(const ServiceResponse& from);
-
-  inline ServiceResponse& operator=(const ServiceResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ServiceResponse& default_instance();
-
-  static const ServiceResponse* internal_default_instance();
-
-  void Swap(ServiceResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ServiceResponse* New() const { return New(NULL); }
-
-  ServiceResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ServiceResponse& from);
-  void MergeFrom(const ServiceResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ServiceResponse* other);
-  void UnsafeMergeFrom(const ServiceResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional string name = 1;
-  void clear_name();
-  static const int kNameFieldNumber = 1;
-  const ::std::string& name() const;
-  void set_name(const ::std::string& value);
-  void set_name(const char* value);
-  void set_name(const char* value, size_t size);
-  ::std::string* mutable_name();
-  ::std::string* release_name();
-  void set_allocated_name(::std::string* name);
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ServiceResponse)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr name_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ServiceResponse> ServiceResponse_default_instance_;
-
-// -------------------------------------------------------------------
-
-class ErrorResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:grpc.reflection.v1alpha.ErrorResponse) */ {
- public:
-  ErrorResponse();
-  virtual ~ErrorResponse();
-
-  ErrorResponse(const ErrorResponse& from);
-
-  inline ErrorResponse& operator=(const ErrorResponse& from) {
-    CopyFrom(from);
-    return *this;
-  }
-
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const ErrorResponse& default_instance();
-
-  static const ErrorResponse* internal_default_instance();
-
-  void Swap(ErrorResponse* other);
-
-  // implements Message ----------------------------------------------
-
-  inline ErrorResponse* New() const { return New(NULL); }
-
-  ErrorResponse* New(::google::protobuf::Arena* arena) const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const ErrorResponse& from);
-  void MergeFrom(const ErrorResponse& from);
-  void Clear();
-  bool IsInitialized() const;
-
-  size_t ByteSizeLong() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
-      bool deterministic, ::google::protobuf::uint8* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
-    return InternalSerializeWithCachedSizesToArray(false, output);
-  }
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  void InternalSwap(ErrorResponse* other);
-  void UnsafeMergeFrom(const ErrorResponse& from);
-  private:
-  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
-    return _internal_metadata_.arena();
-  }
-  inline void* MaybeArenaPtr() const {
-    return _internal_metadata_.raw_arena_ptr();
-  }
-  public:
-
-  ::google::protobuf::Metadata GetMetadata() const;
-
-  // nested types ----------------------------------------------------
-
-  // accessors -------------------------------------------------------
-
-  // optional int32 error_code = 1;
-  void clear_error_code();
-  static const int kErrorCodeFieldNumber = 1;
-  ::google::protobuf::int32 error_code() const;
-  void set_error_code(::google::protobuf::int32 value);
-
-  // optional string error_message = 2;
-  void clear_error_message();
-  static const int kErrorMessageFieldNumber = 2;
-  const ::std::string& error_message() const;
-  void set_error_message(const ::std::string& value);
-  void set_error_message(const char* value);
-  void set_error_message(const char* value, size_t size);
-  ::std::string* mutable_error_message();
-  ::std::string* release_error_message();
-  void set_allocated_error_message(::std::string* error_message);
-
-  // @@protoc_insertion_point(class_scope:grpc.reflection.v1alpha.ErrorResponse)
- private:
-
-  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::protobuf::internal::ArenaStringPtr error_message_;
-  ::google::protobuf::int32 error_code_;
-  mutable int _cached_size_;
-  friend void  protobuf_InitDefaults_reflection_2eproto_impl();
-  friend void  protobuf_AddDesc_reflection_2eproto_impl();
-  friend void protobuf_AssignDesc_reflection_2eproto();
-  friend void protobuf_ShutdownFile_reflection_2eproto();
-
-  void InitAsDefaultInstance();
-};
-extern ::google::protobuf::internal::ExplicitlyConstructed<ErrorResponse> ErrorResponse_default_instance_;
-
-// ===================================================================
-
-
-// ===================================================================
-
-#if !PROTOBUF_INLINE_NOT_IN_HEADERS
-// ServerReflectionRequest
-
-// optional string host = 1;
-inline void ServerReflectionRequest::clear_host() {
-  host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ServerReflectionRequest::host() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  return host_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServerReflectionRequest::set_host(const ::std::string& value) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-inline void ServerReflectionRequest::set_host(const char* value) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-inline void ServerReflectionRequest::set_host(const char* value, size_t size) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-inline ::std::string* ServerReflectionRequest::mutable_host() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  return host_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionRequest::release_host() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  
-  return host_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServerReflectionRequest::set_allocated_host(::std::string* host) {
-  if (host != NULL) {
-    
-  } else {
-    
-  }
-  host_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), host);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-
-// optional string file_by_filename = 3;
-inline bool ServerReflectionRequest::has_file_by_filename() const {
-  return message_request_case() == kFileByFilename;
-}
-inline void ServerReflectionRequest::set_has_file_by_filename() {
-  _oneof_case_[0] = kFileByFilename;
-}
-inline void ServerReflectionRequest::clear_file_by_filename() {
-  if (has_file_by_filename()) {
-    message_request_.file_by_filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-inline const ::std::string& ServerReflectionRequest::file_by_filename() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (has_file_by_filename()) {
-    return message_request_.file_by_filename_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-inline void ServerReflectionRequest::set_file_by_filename(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-inline void ServerReflectionRequest::set_file_by_filename(const char* value) {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-inline void ServerReflectionRequest::set_file_by_filename(const char* value, size_t size) {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-inline ::std::string* ServerReflectionRequest::mutable_file_by_filename() {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  return message_request_.file_by_filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionRequest::release_file_by_filename() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (has_file_by_filename()) {
-    clear_has_message_request();
-    return message_request_.file_by_filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionRequest::set_allocated_file_by_filename(::std::string* file_by_filename) {
-  if (!has_file_by_filename()) {
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (file_by_filename != NULL) {
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        file_by_filename);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-
-// optional string file_containing_symbol = 4;
-inline bool ServerReflectionRequest::has_file_containing_symbol() const {
-  return message_request_case() == kFileContainingSymbol;
-}
-inline void ServerReflectionRequest::set_has_file_containing_symbol() {
-  _oneof_case_[0] = kFileContainingSymbol;
-}
-inline void ServerReflectionRequest::clear_file_containing_symbol() {
-  if (has_file_containing_symbol()) {
-    message_request_.file_containing_symbol_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-inline const ::std::string& ServerReflectionRequest::file_containing_symbol() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (has_file_containing_symbol()) {
-    return message_request_.file_containing_symbol_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-inline void ServerReflectionRequest::set_file_containing_symbol(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-inline void ServerReflectionRequest::set_file_containing_symbol(const char* value) {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-inline void ServerReflectionRequest::set_file_containing_symbol(const char* value, size_t size) {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-inline ::std::string* ServerReflectionRequest::mutable_file_containing_symbol() {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  return message_request_.file_containing_symbol_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionRequest::release_file_containing_symbol() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (has_file_containing_symbol()) {
-    clear_has_message_request();
-    return message_request_.file_containing_symbol_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionRequest::set_allocated_file_containing_symbol(::std::string* file_containing_symbol) {
-  if (!has_file_containing_symbol()) {
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (file_containing_symbol != NULL) {
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        file_containing_symbol);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-
-// optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-inline bool ServerReflectionRequest::has_file_containing_extension() const {
-  return message_request_case() == kFileContainingExtension;
-}
-inline void ServerReflectionRequest::set_has_file_containing_extension() {
-  _oneof_case_[0] = kFileContainingExtension;
-}
-inline void ServerReflectionRequest::clear_file_containing_extension() {
-  if (has_file_containing_extension()) {
-    delete message_request_.file_containing_extension_;
-    clear_has_message_request();
-  }
-}
-inline  const ::grpc::reflection::v1alpha::ExtensionRequest& ServerReflectionRequest::file_containing_extension() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  return has_file_containing_extension()
-      ? *message_request_.file_containing_extension_
-      : ::grpc::reflection::v1alpha::ExtensionRequest::default_instance();
-}
-inline ::grpc::reflection::v1alpha::ExtensionRequest* ServerReflectionRequest::mutable_file_containing_extension() {
-  if (!has_file_containing_extension()) {
-    clear_message_request();
-    set_has_file_containing_extension();
-    message_request_.file_containing_extension_ = new ::grpc::reflection::v1alpha::ExtensionRequest;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  return message_request_.file_containing_extension_;
-}
-inline ::grpc::reflection::v1alpha::ExtensionRequest* ServerReflectionRequest::release_file_containing_extension() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  if (has_file_containing_extension()) {
-    clear_has_message_request();
-    ::grpc::reflection::v1alpha::ExtensionRequest* temp = message_request_.file_containing_extension_;
-    message_request_.file_containing_extension_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionRequest::set_allocated_file_containing_extension(::grpc::reflection::v1alpha::ExtensionRequest* file_containing_extension) {
-  clear_message_request();
-  if (file_containing_extension) {
-    set_has_file_containing_extension();
-    message_request_.file_containing_extension_ = file_containing_extension;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-}
-
-// optional string all_extension_numbers_of_type = 6;
-inline bool ServerReflectionRequest::has_all_extension_numbers_of_type() const {
-  return message_request_case() == kAllExtensionNumbersOfType;
-}
-inline void ServerReflectionRequest::set_has_all_extension_numbers_of_type() {
-  _oneof_case_[0] = kAllExtensionNumbersOfType;
-}
-inline void ServerReflectionRequest::clear_all_extension_numbers_of_type() {
-  if (has_all_extension_numbers_of_type()) {
-    message_request_.all_extension_numbers_of_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-inline const ::std::string& ServerReflectionRequest::all_extension_numbers_of_type() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (has_all_extension_numbers_of_type()) {
-    return message_request_.all_extension_numbers_of_type_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-inline void ServerReflectionRequest::set_all_extension_numbers_of_type(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-inline void ServerReflectionRequest::set_all_extension_numbers_of_type(const char* value) {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-inline void ServerReflectionRequest::set_all_extension_numbers_of_type(const char* value, size_t size) {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-inline ::std::string* ServerReflectionRequest::mutable_all_extension_numbers_of_type() {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  return message_request_.all_extension_numbers_of_type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionRequest::release_all_extension_numbers_of_type() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (has_all_extension_numbers_of_type()) {
-    clear_has_message_request();
-    return message_request_.all_extension_numbers_of_type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionRequest::set_allocated_all_extension_numbers_of_type(::std::string* all_extension_numbers_of_type) {
-  if (!has_all_extension_numbers_of_type()) {
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (all_extension_numbers_of_type != NULL) {
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        all_extension_numbers_of_type);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-
-// optional string list_services = 7;
-inline bool ServerReflectionRequest::has_list_services() const {
-  return message_request_case() == kListServices;
-}
-inline void ServerReflectionRequest::set_has_list_services() {
-  _oneof_case_[0] = kListServices;
-}
-inline void ServerReflectionRequest::clear_list_services() {
-  if (has_list_services()) {
-    message_request_.list_services_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-inline const ::std::string& ServerReflectionRequest::list_services() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (has_list_services()) {
-    return message_request_.list_services_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-inline void ServerReflectionRequest::set_list_services(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-inline void ServerReflectionRequest::set_list_services(const char* value) {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-inline void ServerReflectionRequest::set_list_services(const char* value, size_t size) {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-inline ::std::string* ServerReflectionRequest::mutable_list_services() {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  return message_request_.list_services_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionRequest::release_list_services() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (has_list_services()) {
-    clear_has_message_request();
-    return message_request_.list_services_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionRequest::set_allocated_list_services(::std::string* list_services) {
-  if (!has_list_services()) {
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (list_services != NULL) {
-    set_has_list_services();
-    message_request_.list_services_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        list_services);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-
-inline bool ServerReflectionRequest::has_message_request() const {
-  return message_request_case() != MESSAGE_REQUEST_NOT_SET;
-}
-inline void ServerReflectionRequest::clear_has_message_request() {
-  _oneof_case_[0] = MESSAGE_REQUEST_NOT_SET;
-}
-inline ServerReflectionRequest::MessageRequestCase ServerReflectionRequest::message_request_case() const {
-  return ServerReflectionRequest::MessageRequestCase(_oneof_case_[0]);
-}
-inline const ServerReflectionRequest* ServerReflectionRequest::internal_default_instance() {
-  return &ServerReflectionRequest_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ExtensionRequest
-
-// optional string containing_type = 1;
-inline void ExtensionRequest::clear_containing_type() {
-  containing_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ExtensionRequest::containing_type() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  return containing_type_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ExtensionRequest::set_containing_type(const ::std::string& value) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-inline void ExtensionRequest::set_containing_type(const char* value) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-inline void ExtensionRequest::set_containing_type(const char* value, size_t size) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-inline ::std::string* ExtensionRequest::mutable_containing_type() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  return containing_type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ExtensionRequest::release_containing_type() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  
-  return containing_type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ExtensionRequest::set_allocated_containing_type(::std::string* containing_type) {
-  if (containing_type != NULL) {
-    
-  } else {
-    
-  }
-  containing_type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), containing_type);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-
-// optional int32 extension_number = 2;
-inline void ExtensionRequest::clear_extension_number() {
-  extension_number_ = 0;
-}
-inline ::google::protobuf::int32 ExtensionRequest::extension_number() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionRequest.extension_number)
-  return extension_number_;
-}
-inline void ExtensionRequest::set_extension_number(::google::protobuf::int32 value) {
-  
-  extension_number_ = value;
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionRequest.extension_number)
-}
-
-inline const ExtensionRequest* ExtensionRequest::internal_default_instance() {
-  return &ExtensionRequest_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ServerReflectionResponse
-
-// optional string valid_host = 1;
-inline void ServerReflectionResponse::clear_valid_host() {
-  valid_host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ServerReflectionResponse::valid_host() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  return valid_host_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServerReflectionResponse::set_valid_host(const ::std::string& value) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-inline void ServerReflectionResponse::set_valid_host(const char* value) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-inline void ServerReflectionResponse::set_valid_host(const char* value, size_t size) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-inline ::std::string* ServerReflectionResponse::mutable_valid_host() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  return valid_host_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServerReflectionResponse::release_valid_host() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  
-  return valid_host_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServerReflectionResponse::set_allocated_valid_host(::std::string* valid_host) {
-  if (valid_host != NULL) {
-    
-  } else {
-    
-  }
-  valid_host_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), valid_host);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-
-// optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-inline bool ServerReflectionResponse::has_original_request() const {
-  return this != internal_default_instance() && original_request_ != NULL;
-}
-inline void ServerReflectionResponse::clear_original_request() {
-  if (GetArenaNoVirtual() == NULL && original_request_ != NULL) delete original_request_;
-  original_request_ = NULL;
-}
-inline const ::grpc::reflection::v1alpha::ServerReflectionRequest& ServerReflectionResponse::original_request() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  return original_request_ != NULL ? *original_request_
-                         : *::grpc::reflection::v1alpha::ServerReflectionRequest::internal_default_instance();
-}
-inline ::grpc::reflection::v1alpha::ServerReflectionRequest* ServerReflectionResponse::mutable_original_request() {
-  
-  if (original_request_ == NULL) {
-    original_request_ = new ::grpc::reflection::v1alpha::ServerReflectionRequest;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  return original_request_;
-}
-inline ::grpc::reflection::v1alpha::ServerReflectionRequest* ServerReflectionResponse::release_original_request() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  
-  ::grpc::reflection::v1alpha::ServerReflectionRequest* temp = original_request_;
-  original_request_ = NULL;
-  return temp;
-}
-inline void ServerReflectionResponse::set_allocated_original_request(::grpc::reflection::v1alpha::ServerReflectionRequest* original_request) {
-  delete original_request_;
-  original_request_ = original_request;
-  if (original_request) {
-    
-  } else {
-    
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-}
-
-// optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-inline bool ServerReflectionResponse::has_file_descriptor_response() const {
-  return message_response_case() == kFileDescriptorResponse;
-}
-inline void ServerReflectionResponse::set_has_file_descriptor_response() {
-  _oneof_case_[0] = kFileDescriptorResponse;
-}
-inline void ServerReflectionResponse::clear_file_descriptor_response() {
-  if (has_file_descriptor_response()) {
-    delete message_response_.file_descriptor_response_;
-    clear_has_message_response();
-  }
-}
-inline  const ::grpc::reflection::v1alpha::FileDescriptorResponse& ServerReflectionResponse::file_descriptor_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  return has_file_descriptor_response()
-      ? *message_response_.file_descriptor_response_
-      : ::grpc::reflection::v1alpha::FileDescriptorResponse::default_instance();
-}
-inline ::grpc::reflection::v1alpha::FileDescriptorResponse* ServerReflectionResponse::mutable_file_descriptor_response() {
-  if (!has_file_descriptor_response()) {
-    clear_message_response();
-    set_has_file_descriptor_response();
-    message_response_.file_descriptor_response_ = new ::grpc::reflection::v1alpha::FileDescriptorResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  return message_response_.file_descriptor_response_;
-}
-inline ::grpc::reflection::v1alpha::FileDescriptorResponse* ServerReflectionResponse::release_file_descriptor_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  if (has_file_descriptor_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::FileDescriptorResponse* temp = message_response_.file_descriptor_response_;
-    message_response_.file_descriptor_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionResponse::set_allocated_file_descriptor_response(::grpc::reflection::v1alpha::FileDescriptorResponse* file_descriptor_response) {
-  clear_message_response();
-  if (file_descriptor_response) {
-    set_has_file_descriptor_response();
-    message_response_.file_descriptor_response_ = file_descriptor_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-}
-
-// optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-inline bool ServerReflectionResponse::has_all_extension_numbers_response() const {
-  return message_response_case() == kAllExtensionNumbersResponse;
-}
-inline void ServerReflectionResponse::set_has_all_extension_numbers_response() {
-  _oneof_case_[0] = kAllExtensionNumbersResponse;
-}
-inline void ServerReflectionResponse::clear_all_extension_numbers_response() {
-  if (has_all_extension_numbers_response()) {
-    delete message_response_.all_extension_numbers_response_;
-    clear_has_message_response();
-  }
-}
-inline  const ::grpc::reflection::v1alpha::ExtensionNumberResponse& ServerReflectionResponse::all_extension_numbers_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  return has_all_extension_numbers_response()
-      ? *message_response_.all_extension_numbers_response_
-      : ::grpc::reflection::v1alpha::ExtensionNumberResponse::default_instance();
-}
-inline ::grpc::reflection::v1alpha::ExtensionNumberResponse* ServerReflectionResponse::mutable_all_extension_numbers_response() {
-  if (!has_all_extension_numbers_response()) {
-    clear_message_response();
-    set_has_all_extension_numbers_response();
-    message_response_.all_extension_numbers_response_ = new ::grpc::reflection::v1alpha::ExtensionNumberResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  return message_response_.all_extension_numbers_response_;
-}
-inline ::grpc::reflection::v1alpha::ExtensionNumberResponse* ServerReflectionResponse::release_all_extension_numbers_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  if (has_all_extension_numbers_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ExtensionNumberResponse* temp = message_response_.all_extension_numbers_response_;
-    message_response_.all_extension_numbers_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionResponse::set_allocated_all_extension_numbers_response(::grpc::reflection::v1alpha::ExtensionNumberResponse* all_extension_numbers_response) {
-  clear_message_response();
-  if (all_extension_numbers_response) {
-    set_has_all_extension_numbers_response();
-    message_response_.all_extension_numbers_response_ = all_extension_numbers_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-}
-
-// optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-inline bool ServerReflectionResponse::has_list_services_response() const {
-  return message_response_case() == kListServicesResponse;
-}
-inline void ServerReflectionResponse::set_has_list_services_response() {
-  _oneof_case_[0] = kListServicesResponse;
-}
-inline void ServerReflectionResponse::clear_list_services_response() {
-  if (has_list_services_response()) {
-    delete message_response_.list_services_response_;
-    clear_has_message_response();
-  }
-}
-inline  const ::grpc::reflection::v1alpha::ListServiceResponse& ServerReflectionResponse::list_services_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  return has_list_services_response()
-      ? *message_response_.list_services_response_
-      : ::grpc::reflection::v1alpha::ListServiceResponse::default_instance();
-}
-inline ::grpc::reflection::v1alpha::ListServiceResponse* ServerReflectionResponse::mutable_list_services_response() {
-  if (!has_list_services_response()) {
-    clear_message_response();
-    set_has_list_services_response();
-    message_response_.list_services_response_ = new ::grpc::reflection::v1alpha::ListServiceResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  return message_response_.list_services_response_;
-}
-inline ::grpc::reflection::v1alpha::ListServiceResponse* ServerReflectionResponse::release_list_services_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  if (has_list_services_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ListServiceResponse* temp = message_response_.list_services_response_;
-    message_response_.list_services_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionResponse::set_allocated_list_services_response(::grpc::reflection::v1alpha::ListServiceResponse* list_services_response) {
-  clear_message_response();
-  if (list_services_response) {
-    set_has_list_services_response();
-    message_response_.list_services_response_ = list_services_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-}
-
-// optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-inline bool ServerReflectionResponse::has_error_response() const {
-  return message_response_case() == kErrorResponse;
-}
-inline void ServerReflectionResponse::set_has_error_response() {
-  _oneof_case_[0] = kErrorResponse;
-}
-inline void ServerReflectionResponse::clear_error_response() {
-  if (has_error_response()) {
-    delete message_response_.error_response_;
-    clear_has_message_response();
-  }
-}
-inline  const ::grpc::reflection::v1alpha::ErrorResponse& ServerReflectionResponse::error_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  return has_error_response()
-      ? *message_response_.error_response_
-      : ::grpc::reflection::v1alpha::ErrorResponse::default_instance();
-}
-inline ::grpc::reflection::v1alpha::ErrorResponse* ServerReflectionResponse::mutable_error_response() {
-  if (!has_error_response()) {
-    clear_message_response();
-    set_has_error_response();
-    message_response_.error_response_ = new ::grpc::reflection::v1alpha::ErrorResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  return message_response_.error_response_;
-}
-inline ::grpc::reflection::v1alpha::ErrorResponse* ServerReflectionResponse::release_error_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  if (has_error_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ErrorResponse* temp = message_response_.error_response_;
-    message_response_.error_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-inline void ServerReflectionResponse::set_allocated_error_response(::grpc::reflection::v1alpha::ErrorResponse* error_response) {
-  clear_message_response();
-  if (error_response) {
-    set_has_error_response();
-    message_response_.error_response_ = error_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-}
-
-inline bool ServerReflectionResponse::has_message_response() const {
-  return message_response_case() != MESSAGE_RESPONSE_NOT_SET;
-}
-inline void ServerReflectionResponse::clear_has_message_response() {
-  _oneof_case_[0] = MESSAGE_RESPONSE_NOT_SET;
-}
-inline ServerReflectionResponse::MessageResponseCase ServerReflectionResponse::message_response_case() const {
-  return ServerReflectionResponse::MessageResponseCase(_oneof_case_[0]);
-}
-inline const ServerReflectionResponse* ServerReflectionResponse::internal_default_instance() {
-  return &ServerReflectionResponse_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// FileDescriptorResponse
-
-// repeated bytes file_descriptor_proto = 1;
-inline int FileDescriptorResponse::file_descriptor_proto_size() const {
-  return file_descriptor_proto_.size();
-}
-inline void FileDescriptorResponse::clear_file_descriptor_proto() {
-  file_descriptor_proto_.Clear();
-}
-inline const ::std::string& FileDescriptorResponse::file_descriptor_proto(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Get(index);
-}
-inline ::std::string* FileDescriptorResponse::mutable_file_descriptor_proto(int index) {
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Mutable(index);
-}
-inline void FileDescriptorResponse::set_file_descriptor_proto(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  file_descriptor_proto_.Mutable(index)->assign(value);
-}
-inline void FileDescriptorResponse::set_file_descriptor_proto(int index, const char* value) {
-  file_descriptor_proto_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-inline void FileDescriptorResponse::set_file_descriptor_proto(int index, const void* value, size_t size) {
-  file_descriptor_proto_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-inline ::std::string* FileDescriptorResponse::add_file_descriptor_proto() {
-  // @@protoc_insertion_point(field_add_mutable:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Add();
-}
-inline void FileDescriptorResponse::add_file_descriptor_proto(const ::std::string& value) {
-  file_descriptor_proto_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-inline void FileDescriptorResponse::add_file_descriptor_proto(const char* value) {
-  file_descriptor_proto_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-inline void FileDescriptorResponse::add_file_descriptor_proto(const void* value, size_t size) {
-  file_descriptor_proto_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
-FileDescriptorResponse::file_descriptor_proto() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::std::string>*
-FileDescriptorResponse::mutable_file_descriptor_proto() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return &file_descriptor_proto_;
-}
-
-inline const FileDescriptorResponse* FileDescriptorResponse::internal_default_instance() {
-  return &FileDescriptorResponse_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ExtensionNumberResponse
-
-// optional string base_type_name = 1;
-inline void ExtensionNumberResponse::clear_base_type_name() {
-  base_type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ExtensionNumberResponse::base_type_name() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  return base_type_name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ExtensionNumberResponse::set_base_type_name(const ::std::string& value) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-inline void ExtensionNumberResponse::set_base_type_name(const char* value) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-inline void ExtensionNumberResponse::set_base_type_name(const char* value, size_t size) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-inline ::std::string* ExtensionNumberResponse::mutable_base_type_name() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  return base_type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ExtensionNumberResponse::release_base_type_name() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  
-  return base_type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ExtensionNumberResponse::set_allocated_base_type_name(::std::string* base_type_name) {
-  if (base_type_name != NULL) {
-    
-  } else {
-    
-  }
-  base_type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), base_type_name);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-
-// repeated int32 extension_number = 2;
-inline int ExtensionNumberResponse::extension_number_size() const {
-  return extension_number_.size();
-}
-inline void ExtensionNumberResponse::clear_extension_number() {
-  extension_number_.Clear();
-}
-inline ::google::protobuf::int32 ExtensionNumberResponse::extension_number(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return extension_number_.Get(index);
-}
-inline void ExtensionNumberResponse::set_extension_number(int index, ::google::protobuf::int32 value) {
-  extension_number_.Set(index, value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-}
-inline void ExtensionNumberResponse::add_extension_number(::google::protobuf::int32 value) {
-  extension_number_.Add(value);
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-}
-inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ExtensionNumberResponse::extension_number() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return extension_number_;
-}
-inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ExtensionNumberResponse::mutable_extension_number() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return &extension_number_;
-}
-
-inline const ExtensionNumberResponse* ExtensionNumberResponse::internal_default_instance() {
-  return &ExtensionNumberResponse_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ListServiceResponse
-
-// repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-inline int ListServiceResponse::service_size() const {
-  return service_.size();
-}
-inline void ListServiceResponse::clear_service() {
-  service_.Clear();
-}
-inline const ::grpc::reflection::v1alpha::ServiceResponse& ListServiceResponse::service(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Get(index);
-}
-inline ::grpc::reflection::v1alpha::ServiceResponse* ListServiceResponse::mutable_service(int index) {
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Mutable(index);
-}
-inline ::grpc::reflection::v1alpha::ServiceResponse* ListServiceResponse::add_service() {
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Add();
-}
-inline ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >*
-ListServiceResponse::mutable_service() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return &service_;
-}
-inline const ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >&
-ListServiceResponse::service() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_;
-}
-
-inline const ListServiceResponse* ListServiceResponse::internal_default_instance() {
-  return &ListServiceResponse_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ServiceResponse
-
-// optional string name = 1;
-inline void ServiceResponse::clear_name() {
-  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ServiceResponse::name() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServiceResponse.name)
-  return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServiceResponse::set_name(const ::std::string& value) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-inline void ServiceResponse::set_name(const char* value) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-inline void ServiceResponse::set_name(const char* value, size_t size) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-inline ::std::string* ServiceResponse::mutable_name() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServiceResponse.name)
-  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ServiceResponse::release_name() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServiceResponse.name)
-  
-  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ServiceResponse::set_allocated_name(::std::string* name) {
-  if (name != NULL) {
-    
-  } else {
-    
-  }
-  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-
-inline const ServiceResponse* ServiceResponse::internal_default_instance() {
-  return &ServiceResponse_default_instance_.get();
-}
-// -------------------------------------------------------------------
-
-// ErrorResponse
-
-// optional int32 error_code = 1;
-inline void ErrorResponse::clear_error_code() {
-  error_code_ = 0;
-}
-inline ::google::protobuf::int32 ErrorResponse::error_code() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ErrorResponse.error_code)
-  return error_code_;
-}
-inline void ErrorResponse::set_error_code(::google::protobuf::int32 value) {
-  
-  error_code_ = value;
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ErrorResponse.error_code)
-}
-
-// optional string error_message = 2;
-inline void ErrorResponse::clear_error_message() {
-  error_message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline const ::std::string& ErrorResponse::error_message() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  return error_message_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ErrorResponse::set_error_message(const ::std::string& value) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-inline void ErrorResponse::set_error_message(const char* value) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-inline void ErrorResponse::set_error_message(const char* value, size_t size) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-inline ::std::string* ErrorResponse::mutable_error_message() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  return error_message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline ::std::string* ErrorResponse::release_error_message() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  
-  return error_message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-inline void ErrorResponse::set_allocated_error_message(::std::string* error_message) {
-  if (error_message != NULL) {
-    
-  } else {
-    
-  }
-  error_message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), error_message);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-
-inline const ErrorResponse* ErrorResponse::internal_default_instance() {
-  return &ErrorResponse_default_instance_.get();
-}
-#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-// -------------------------------------------------------------------
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace v1alpha
-}  // namespace reflection
-}  // namespace grpc
-
-// @@protoc_insertion_point(global_scope)
-
-#endif  // PROTOBUF_reflection_2eproto__INCLUDED
diff --git a/src/cpp/ext/proto_server_reflection.h b/src/cpp/ext/proto_server_reflection.h
index f66f3c2..be5f062 100644
--- a/src/cpp/ext/proto_server_reflection.h
+++ b/src/cpp/ext/proto_server_reflection.h
@@ -31,31 +31,14 @@
  *
  */
 
-/*
-  - If the generated header `grpc++/ext/reflection.grpc.pb.h` needs to be
-    installed, target `grpc++_reflection` in `build.yaml` should use the
-    filegroup `grpc++_reflection_proto`, and GRPC_NO_GENERATED_CODE should not
-    be defined.
-  - If the server reflection library needs to generate `reflection.grpc.pb.h`
-    from `reflection.proto` at compile time, the generated header
-    `grpc++/ext/reflection.grpc.pb.h` should not be installed. In this case,
-    target `grpc++_reflection` should depend on `grpc++_reflection_codegen`, and
-    GRPC_NO_GENERATED_CODE should be defined.
-*/
-
 #ifndef GRPC_INTERNAL_CPP_EXT_PROTO_SERVER_REFLECTION_H
 #define GRPC_INTERNAL_CPP_EXT_PROTO_SERVER_REFLECTION_H
 
 #include <unordered_set>
 #include <vector>
 
-// GRPC_NO_GENERATED_CODE indicates generated pb files should not be used
-#ifdef GRPC_NO_GENERATED_CODE
-#include "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h"
-#else
-#include <grpc++/ext/reflection.grpc.pb.h>
-#endif  // GRPC_NO_GENERATED_CODE
 #include <grpc++/grpc++.h>
+#include "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h"
 
 namespace grpc {
 
diff --git a/src/cpp/ext/reflection.grpc.pb.cc b/src/cpp/ext/reflection.grpc.pb.cc
deleted file mode 100644
index 8139c8e..0000000
--- a/src/cpp/ext/reflection.grpc.pb.cc
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-
-// Generated by tools/codegen/extensions/gen_reflection_proto.sh
-// If you make any local change, they will be lost.
-// source: reflection.proto
-
-#include <grpc++/ext/reflection.pb.h>
-#include <grpc++/ext/reflection.grpc.pb.h>
-
-#include <grpc++/impl/codegen/async_stream.h>
-#include <grpc++/impl/codegen/async_unary_call.h>
-#include <grpc++/impl/codegen/channel_interface.h>
-#include <grpc++/impl/codegen/client_unary_call.h>
-#include <grpc++/impl/codegen/method_handler_impl.h>
-#include <grpc++/impl/codegen/rpc_service_method.h>
-#include <grpc++/impl/codegen/service_type.h>
-#include <grpc++/impl/codegen/sync_stream.h>
-namespace grpc {
-namespace reflection {
-namespace v1alpha {
-
-static const char* ServerReflection_method_names[] = {
-  "/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo",
-};
-
-std::unique_ptr< ServerReflection::Stub> ServerReflection::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
-  std::unique_ptr< ServerReflection::Stub> stub(new ServerReflection::Stub(channel));
-  return stub;
-}
-
-ServerReflection::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
-  : channel_(channel), rpcmethod_ServerReflectionInfo_(ServerReflection_method_names[0], ::grpc::RpcMethod::BIDI_STREAMING, channel)
-  {}
-
-::grpc::ClientReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* ServerReflection::Stub::ServerReflectionInfoRaw(::grpc::ClientContext* context) {
-  return new ::grpc::ClientReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>(channel_.get(), rpcmethod_ServerReflectionInfo_, context);
-}
-
-::grpc::ClientAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>* ServerReflection::Stub::AsyncServerReflectionInfoRaw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) {
-  return new ::grpc::ClientAsyncReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>(channel_.get(), cq, rpcmethod_ServerReflectionInfo_, context, tag);
-}
-
-ServerReflection::Service::Service() {
-  (void)ServerReflection_method_names;
-  AddMethod(new ::grpc::RpcServiceMethod(
-      ServerReflection_method_names[0],
-      ::grpc::RpcMethod::BIDI_STREAMING,
-      new ::grpc::BidiStreamingHandler< ServerReflection::Service, ::grpc::reflection::v1alpha::ServerReflectionRequest, ::grpc::reflection::v1alpha::ServerReflectionResponse>(
-          std::mem_fn(&ServerReflection::Service::ServerReflectionInfo), this)));
-}
-
-ServerReflection::Service::~Service() {
-}
-
-::grpc::Status ServerReflection::Service::ServerReflectionInfo(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::reflection::v1alpha::ServerReflectionResponse, ::grpc::reflection::v1alpha::ServerReflectionRequest>* stream) {
-  (void) context;
-  (void) stream;
-  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
-}
-
-
-}  // namespace grpc
-}  // namespace reflection
-}  // namespace v1alpha
-
diff --git a/src/cpp/ext/reflection.pb.cc b/src/cpp/ext/reflection.pb.cc
deleted file mode 100644
index d75503b..0000000
--- a/src/cpp/ext/reflection.pb.cc
+++ /dev/null
@@ -1,4045 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-
-// Generated by tools/codegen/extensions/gen_reflection_proto.sh
-// source: reflection.proto
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include <grpc++/ext/reflection.pb.h>
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/common.h>
-#include <google/protobuf/stubs/port.h>
-#include <google/protobuf/stubs/once.h>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/wire_format_lite_inl.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-
-namespace grpc {
-namespace reflection {
-namespace v1alpha {
-
-namespace {
-
-const ::google::protobuf::Descriptor* ServerReflectionRequest_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ServerReflectionRequest_reflection_ = NULL;
-struct ServerReflectionRequestOneofInstance {
-  ::google::protobuf::internal::ArenaStringPtr file_by_filename_;
-  ::google::protobuf::internal::ArenaStringPtr file_containing_symbol_;
-  const ::grpc::reflection::v1alpha::ExtensionRequest* file_containing_extension_;
-  ::google::protobuf::internal::ArenaStringPtr all_extension_numbers_of_type_;
-  ::google::protobuf::internal::ArenaStringPtr list_services_;
-}* ServerReflectionRequest_default_oneof_instance_ = NULL;
-const ::google::protobuf::Descriptor* ExtensionRequest_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ExtensionRequest_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ServerReflectionResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ServerReflectionResponse_reflection_ = NULL;
-struct ServerReflectionResponseOneofInstance {
-  const ::grpc::reflection::v1alpha::FileDescriptorResponse* file_descriptor_response_;
-  const ::grpc::reflection::v1alpha::ExtensionNumberResponse* all_extension_numbers_response_;
-  const ::grpc::reflection::v1alpha::ListServiceResponse* list_services_response_;
-  const ::grpc::reflection::v1alpha::ErrorResponse* error_response_;
-}* ServerReflectionResponse_default_oneof_instance_ = NULL;
-const ::google::protobuf::Descriptor* FileDescriptorResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  FileDescriptorResponse_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ExtensionNumberResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ExtensionNumberResponse_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ListServiceResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ListServiceResponse_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ServiceResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ServiceResponse_reflection_ = NULL;
-const ::google::protobuf::Descriptor* ErrorResponse_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  ErrorResponse_reflection_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_reflection_2eproto() GOOGLE_ATTRIBUTE_COLD;
-void protobuf_AssignDesc_reflection_2eproto() {
-  protobuf_AddDesc_reflection_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "reflection.proto");
-  GOOGLE_CHECK(file != NULL);
-  ServerReflectionRequest_descriptor_ = file->message_type(0);
-  static const int ServerReflectionRequest_offsets_[7] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionRequest, host_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionRequest_default_oneof_instance_, file_by_filename_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionRequest_default_oneof_instance_, file_containing_symbol_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionRequest_default_oneof_instance_, file_containing_extension_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionRequest_default_oneof_instance_, all_extension_numbers_of_type_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionRequest_default_oneof_instance_, list_services_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionRequest, message_request_),
-  };
-  ServerReflectionRequest_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ServerReflectionRequest_descriptor_,
-      ServerReflectionRequest::internal_default_instance(),
-      ServerReflectionRequest_offsets_,
-      -1,
-      -1,
-      -1,
-      ServerReflectionRequest_default_oneof_instance_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionRequest, _oneof_case_[0]),
-      sizeof(ServerReflectionRequest),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionRequest, _internal_metadata_));
-  ExtensionRequest_descriptor_ = file->message_type(1);
-  static const int ExtensionRequest_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionRequest, containing_type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionRequest, extension_number_),
-  };
-  ExtensionRequest_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ExtensionRequest_descriptor_,
-      ExtensionRequest::internal_default_instance(),
-      ExtensionRequest_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(ExtensionRequest),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionRequest, _internal_metadata_));
-  ServerReflectionResponse_descriptor_ = file->message_type(2);
-  static const int ServerReflectionResponse_offsets_[7] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionResponse, valid_host_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionResponse, original_request_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionResponse_default_oneof_instance_, file_descriptor_response_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionResponse_default_oneof_instance_, all_extension_numbers_response_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionResponse_default_oneof_instance_, list_services_response_),
-    PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ServerReflectionResponse_default_oneof_instance_, error_response_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionResponse, message_response_),
-  };
-  ServerReflectionResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ServerReflectionResponse_descriptor_,
-      ServerReflectionResponse::internal_default_instance(),
-      ServerReflectionResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      ServerReflectionResponse_default_oneof_instance_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionResponse, _oneof_case_[0]),
-      sizeof(ServerReflectionResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServerReflectionResponse, _internal_metadata_));
-  FileDescriptorResponse_descriptor_ = file->message_type(3);
-  static const int FileDescriptorResponse_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorResponse, file_descriptor_proto_),
-  };
-  FileDescriptorResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      FileDescriptorResponse_descriptor_,
-      FileDescriptorResponse::internal_default_instance(),
-      FileDescriptorResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(FileDescriptorResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorResponse, _internal_metadata_));
-  ExtensionNumberResponse_descriptor_ = file->message_type(4);
-  static const int ExtensionNumberResponse_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionNumberResponse, base_type_name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionNumberResponse, extension_number_),
-  };
-  ExtensionNumberResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ExtensionNumberResponse_descriptor_,
-      ExtensionNumberResponse::internal_default_instance(),
-      ExtensionNumberResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(ExtensionNumberResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ExtensionNumberResponse, _internal_metadata_));
-  ListServiceResponse_descriptor_ = file->message_type(5);
-  static const int ListServiceResponse_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ListServiceResponse, service_),
-  };
-  ListServiceResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ListServiceResponse_descriptor_,
-      ListServiceResponse::internal_default_instance(),
-      ListServiceResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(ListServiceResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ListServiceResponse, _internal_metadata_));
-  ServiceResponse_descriptor_ = file->message_type(6);
-  static const int ServiceResponse_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceResponse, name_),
-  };
-  ServiceResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ServiceResponse_descriptor_,
-      ServiceResponse::internal_default_instance(),
-      ServiceResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(ServiceResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ServiceResponse, _internal_metadata_));
-  ErrorResponse_descriptor_ = file->message_type(7);
-  static const int ErrorResponse_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ErrorResponse, error_code_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ErrorResponse, error_message_),
-  };
-  ErrorResponse_reflection_ =
-    ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
-      ErrorResponse_descriptor_,
-      ErrorResponse::internal_default_instance(),
-      ErrorResponse_offsets_,
-      -1,
-      -1,
-      -1,
-      sizeof(ErrorResponse),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ErrorResponse, _internal_metadata_));
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_reflection_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ServerReflectionRequest_descriptor_, ServerReflectionRequest::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ExtensionRequest_descriptor_, ExtensionRequest::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ServerReflectionResponse_descriptor_, ServerReflectionResponse::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      FileDescriptorResponse_descriptor_, FileDescriptorResponse::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ExtensionNumberResponse_descriptor_, ExtensionNumberResponse::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ListServiceResponse_descriptor_, ListServiceResponse::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ServiceResponse_descriptor_, ServiceResponse::internal_default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-      ErrorResponse_descriptor_, ErrorResponse::internal_default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_reflection_2eproto() {
-  ServerReflectionRequest_default_instance_.Shutdown();
-  delete ServerReflectionRequest_default_oneof_instance_;
-  delete ServerReflectionRequest_reflection_;
-  ExtensionRequest_default_instance_.Shutdown();
-  delete ExtensionRequest_reflection_;
-  ServerReflectionResponse_default_instance_.Shutdown();
-  delete ServerReflectionResponse_default_oneof_instance_;
-  delete ServerReflectionResponse_reflection_;
-  FileDescriptorResponse_default_instance_.Shutdown();
-  delete FileDescriptorResponse_reflection_;
-  ExtensionNumberResponse_default_instance_.Shutdown();
-  delete ExtensionNumberResponse_reflection_;
-  ListServiceResponse_default_instance_.Shutdown();
-  delete ListServiceResponse_reflection_;
-  ServiceResponse_default_instance_.Shutdown();
-  delete ServiceResponse_reflection_;
-  ErrorResponse_default_instance_.Shutdown();
-  delete ErrorResponse_reflection_;
-}
-
-void protobuf_InitDefaults_reflection_2eproto_impl() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::internal::GetEmptyString();
-  ServerReflectionRequest_default_instance_.DefaultConstruct();
-  ServerReflectionRequest_default_oneof_instance_ = new ServerReflectionRequestOneofInstance();
-  ::google::protobuf::internal::GetEmptyString();
-  ExtensionRequest_default_instance_.DefaultConstruct();
-  ::google::protobuf::internal::GetEmptyString();
-  ServerReflectionResponse_default_instance_.DefaultConstruct();
-  ServerReflectionResponse_default_oneof_instance_ = new ServerReflectionResponseOneofInstance();
-  ::google::protobuf::internal::GetEmptyString();
-  FileDescriptorResponse_default_instance_.DefaultConstruct();
-  ::google::protobuf::internal::GetEmptyString();
-  ExtensionNumberResponse_default_instance_.DefaultConstruct();
-  ListServiceResponse_default_instance_.DefaultConstruct();
-  ::google::protobuf::internal::GetEmptyString();
-  ServiceResponse_default_instance_.DefaultConstruct();
-  ::google::protobuf::internal::GetEmptyString();
-  ErrorResponse_default_instance_.DefaultConstruct();
-  ServerReflectionRequest_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ExtensionRequest_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ServerReflectionResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-  FileDescriptorResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ExtensionNumberResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ListServiceResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ServiceResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-  ErrorResponse_default_instance_.get_mutable()->InitAsDefaultInstance();
-}
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_InitDefaults_reflection_2eproto_once_);
-void protobuf_InitDefaults_reflection_2eproto() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_InitDefaults_reflection_2eproto_once_,
-                 &protobuf_InitDefaults_reflection_2eproto_impl);
-}
-void protobuf_AddDesc_reflection_2eproto_impl() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  protobuf_InitDefaults_reflection_2eproto();
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\020reflection.proto\022\027grpc.reflection.v1al"
-    "pha\"\212\002\n\027ServerReflectionRequest\022\014\n\004host\030"
-    "\001 \001(\t\022\032\n\020file_by_filename\030\003 \001(\tH\000\022 \n\026fil"
-    "e_containing_symbol\030\004 \001(\tH\000\022N\n\031file_cont"
-    "aining_extension\030\005 \001(\0132).grpc.reflection"
-    ".v1alpha.ExtensionRequestH\000\022\'\n\035all_exten"
-    "sion_numbers_of_type\030\006 \001(\tH\000\022\027\n\rlist_ser"
-    "vices\030\007 \001(\tH\000B\021\n\017message_request\"E\n\020Exte"
-    "nsionRequest\022\027\n\017containing_type\030\001 \001(\t\022\030\n"
-    "\020extension_number\030\002 \001(\005\"\321\003\n\030ServerReflec"
-    "tionResponse\022\022\n\nvalid_host\030\001 \001(\t\022J\n\020orig"
-    "inal_request\030\002 \001(\01320.grpc.reflection.v1a"
-    "lpha.ServerReflectionRequest\022S\n\030file_des"
-    "criptor_response\030\004 \001(\0132/.grpc.reflection"
-    ".v1alpha.FileDescriptorResponseH\000\022Z\n\036all"
-    "_extension_numbers_response\030\005 \001(\01320.grpc"
-    ".reflection.v1alpha.ExtensionNumberRespo"
-    "nseH\000\022N\n\026list_services_response\030\006 \001(\0132,."
-    "grpc.reflection.v1alpha.ListServiceRespo"
-    "nseH\000\022@\n\016error_response\030\007 \001(\0132&.grpc.ref"
-    "lection.v1alpha.ErrorResponseH\000B\022\n\020messa"
-    "ge_response\"7\n\026FileDescriptorResponse\022\035\n"
-    "\025file_descriptor_proto\030\001 \003(\014\"K\n\027Extensio"
-    "nNumberResponse\022\026\n\016base_type_name\030\001 \001(\t\022"
-    "\030\n\020extension_number\030\002 \003(\005\"P\n\023ListService"
-    "Response\0229\n\007service\030\001 \003(\0132(.grpc.reflect"
-    "ion.v1alpha.ServiceResponse\"\037\n\017ServiceRe"
-    "sponse\022\014\n\004name\030\001 \001(\t\":\n\rErrorResponse\022\022\n"
-    "\nerror_code\030\001 \001(\005\022\025\n\rerror_message\030\002 \001(\t"
-    "2\223\001\n\020ServerReflection\022\177\n\024ServerReflectio"
-    "nInfo\0220.grpc.reflection.v1alpha.ServerRe"
-    "flectionRequest\0321.grpc.reflection.v1alph"
-    "a.ServerReflectionResponse(\0010\001b\006proto3", 1318);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "reflection.proto", &protobuf_RegisterTypes);
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_reflection_2eproto);
-}
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AddDesc_reflection_2eproto_once_);
-void protobuf_AddDesc_reflection_2eproto() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AddDesc_reflection_2eproto_once_,
-                 &protobuf_AddDesc_reflection_2eproto_impl);
-}
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_reflection_2eproto {
-  StaticDescriptorInitializer_reflection_2eproto() {
-    protobuf_AddDesc_reflection_2eproto();
-  }
-} static_descriptor_initializer_reflection_2eproto_;
-
-namespace {
-
-static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD GOOGLE_ATTRIBUTE_NORETURN;
-static void MergeFromFail(int line) {
-  ::google::protobuf::internal::MergeFromFail(__FILE__, line);
-}
-
-}  // namespace
-
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ServerReflectionRequest::kHostFieldNumber;
-const int ServerReflectionRequest::kFileByFilenameFieldNumber;
-const int ServerReflectionRequest::kFileContainingSymbolFieldNumber;
-const int ServerReflectionRequest::kFileContainingExtensionFieldNumber;
-const int ServerReflectionRequest::kAllExtensionNumbersOfTypeFieldNumber;
-const int ServerReflectionRequest::kListServicesFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ServerReflectionRequest::ServerReflectionRequest()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ServerReflectionRequest)
-}
-
-void ServerReflectionRequest::InitAsDefaultInstance() {
-  ServerReflectionRequest_default_oneof_instance_->file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ServerReflectionRequest_default_oneof_instance_->file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ServerReflectionRequest_default_oneof_instance_->file_containing_extension_ = const_cast< ::grpc::reflection::v1alpha::ExtensionRequest*>(
-      ::grpc::reflection::v1alpha::ExtensionRequest::internal_default_instance());
-  ServerReflectionRequest_default_oneof_instance_->all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  ServerReflectionRequest_default_oneof_instance_->list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-ServerReflectionRequest::ServerReflectionRequest(const ServerReflectionRequest& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ServerReflectionRequest)
-}
-
-void ServerReflectionRequest::SharedCtor() {
-  host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_has_message_request();
-  _cached_size_ = 0;
-}
-
-ServerReflectionRequest::~ServerReflectionRequest() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ServerReflectionRequest)
-  SharedDtor();
-}
-
-void ServerReflectionRequest::SharedDtor() {
-  host_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (has_message_request()) {
-    clear_message_request();
-  }
-}
-
-void ServerReflectionRequest::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ServerReflectionRequest::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ServerReflectionRequest_descriptor_;
-}
-
-const ServerReflectionRequest& ServerReflectionRequest::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ServerReflectionRequest> ServerReflectionRequest_default_instance_;
-
-ServerReflectionRequest* ServerReflectionRequest::New(::google::protobuf::Arena* arena) const {
-  ServerReflectionRequest* n = new ServerReflectionRequest;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ServerReflectionRequest::clear_message_request() {
-// @@protoc_insertion_point(one_of_clear_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  switch (message_request_case()) {
-    case kFileByFilename: {
-      message_request_.file_by_filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-      break;
-    }
-    case kFileContainingSymbol: {
-      message_request_.file_containing_symbol_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-      break;
-    }
-    case kFileContainingExtension: {
-      delete message_request_.file_containing_extension_;
-      break;
-    }
-    case kAllExtensionNumbersOfType: {
-      message_request_.all_extension_numbers_of_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-      break;
-    }
-    case kListServices: {
-      message_request_.list_services_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-      break;
-    }
-    case MESSAGE_REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = MESSAGE_REQUEST_NOT_SET;
-}
-
-
-void ServerReflectionRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  clear_message_request();
-}
-
-bool ServerReflectionRequest::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional string host = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_host()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->host().data(), this->host().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionRequest.host"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(26)) goto parse_file_by_filename;
-        break;
-      }
-
-      // optional string file_by_filename = 3;
-      case 3: {
-        if (tag == 26) {
-         parse_file_by_filename:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_file_by_filename()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->file_by_filename().data(), this->file_by_filename().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename"));
-        } else {
-          goto handle_unusual;
-        }
-        goto after_list_services;
-        break;
-      }
-
-      // optional string file_containing_symbol = 4;
-      case 4: {
-        if (tag == 34) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_file_containing_symbol()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->file_containing_symbol().data(), this->file_containing_symbol().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol"));
-        } else {
-          goto handle_unusual;
-        }
-        goto after_list_services;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-      case 5: {
-        if (tag == 42) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_file_containing_extension()));
-        } else {
-          goto handle_unusual;
-        }
-        goto after_list_services;
-        break;
-      }
-
-      // optional string all_extension_numbers_of_type = 6;
-      case 6: {
-        if (tag == 50) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_all_extension_numbers_of_type()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->all_extension_numbers_of_type().data(), this->all_extension_numbers_of_type().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(58)) goto parse_list_services;
-        break;
-      }
-
-      // optional string list_services = 7;
-      case 7: {
-        if (tag == 58) {
-         parse_list_services:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_list_services()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->list_services().data(), this->list_services().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionRequest.list_services"));
-        } else {
-          goto handle_unusual;
-        }
-       after_list_services:
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ServerReflectionRequest)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ServerReflectionRequest)
-  return false;
-#undef DO_
-}
-
-void ServerReflectionRequest::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  // optional string host = 1;
-  if (this->host().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->host().data(), this->host().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.host");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->host(), output);
-  }
-
-  // optional string file_by_filename = 3;
-  if (has_file_by_filename()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->file_by_filename().data(), this->file_by_filename().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      3, this->file_by_filename(), output);
-  }
-
-  // optional string file_containing_symbol = 4;
-  if (has_file_containing_symbol()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->file_containing_symbol().data(), this->file_containing_symbol().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      4, this->file_containing_symbol(), output);
-  }
-
-  // optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-  if (has_file_containing_extension()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      5, *message_request_.file_containing_extension_, output);
-  }
-
-  // optional string all_extension_numbers_of_type = 6;
-  if (has_all_extension_numbers_of_type()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->all_extension_numbers_of_type().data(), this->all_extension_numbers_of_type().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      6, this->all_extension_numbers_of_type(), output);
-  }
-
-  // optional string list_services = 7;
-  if (has_list_services()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->list_services().data(), this->list_services().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.list_services");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      7, this->list_services(), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ServerReflectionRequest)
-}
-
-::google::protobuf::uint8* ServerReflectionRequest::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  // optional string host = 1;
-  if (this->host().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->host().data(), this->host().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.host");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->host(), target);
-  }
-
-  // optional string file_by_filename = 3;
-  if (has_file_by_filename()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->file_by_filename().data(), this->file_by_filename().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->file_by_filename(), target);
-  }
-
-  // optional string file_containing_symbol = 4;
-  if (has_file_containing_symbol()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->file_containing_symbol().data(), this->file_containing_symbol().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        4, this->file_containing_symbol(), target);
-  }
-
-  // optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-  if (has_file_containing_extension()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        5, *message_request_.file_containing_extension_, false, target);
-  }
-
-  // optional string all_extension_numbers_of_type = 6;
-  if (has_all_extension_numbers_of_type()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->all_extension_numbers_of_type().data(), this->all_extension_numbers_of_type().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        6, this->all_extension_numbers_of_type(), target);
-  }
-
-  // optional string list_services = 7;
-  if (has_list_services()) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->list_services().data(), this->list_services().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionRequest.list_services");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        7, this->list_services(), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ServerReflectionRequest)
-  return target;
-}
-
-size_t ServerReflectionRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  size_t total_size = 0;
-
-  // optional string host = 1;
-  if (this->host().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->host());
-  }
-
-  switch (message_request_case()) {
-    // optional string file_by_filename = 3;
-    case kFileByFilename: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->file_by_filename());
-      break;
-    }
-    // optional string file_containing_symbol = 4;
-    case kFileContainingSymbol: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->file_containing_symbol());
-      break;
-    }
-    // optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-    case kFileContainingExtension: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          *message_request_.file_containing_extension_);
-      break;
-    }
-    // optional string all_extension_numbers_of_type = 6;
-    case kAllExtensionNumbersOfType: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->all_extension_numbers_of_type());
-      break;
-    }
-    // optional string list_services = 7;
-    case kListServices: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->list_services());
-      break;
-    }
-    case MESSAGE_REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ServerReflectionRequest::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ServerReflectionRequest* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ServerReflectionRequest>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ServerReflectionRequest)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ServerReflectionRequest)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ServerReflectionRequest::MergeFrom(const ServerReflectionRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ServerReflectionRequest::UnsafeMergeFrom(const ServerReflectionRequest& from) {
-  GOOGLE_DCHECK(&from != this);
-  switch (from.message_request_case()) {
-    case kFileByFilename: {
-      set_file_by_filename(from.file_by_filename());
-      break;
-    }
-    case kFileContainingSymbol: {
-      set_file_containing_symbol(from.file_containing_symbol());
-      break;
-    }
-    case kFileContainingExtension: {
-      mutable_file_containing_extension()->::grpc::reflection::v1alpha::ExtensionRequest::MergeFrom(from.file_containing_extension());
-      break;
-    }
-    case kAllExtensionNumbersOfType: {
-      set_all_extension_numbers_of_type(from.all_extension_numbers_of_type());
-      break;
-    }
-    case kListServices: {
-      set_list_services(from.list_services());
-      break;
-    }
-    case MESSAGE_REQUEST_NOT_SET: {
-      break;
-    }
-  }
-  if (from.host().size() > 0) {
-
-    host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.host_);
-  }
-}
-
-void ServerReflectionRequest::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ServerReflectionRequest::CopyFrom(const ServerReflectionRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ServerReflectionRequest)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ServerReflectionRequest::IsInitialized() const {
-
-  return true;
-}
-
-void ServerReflectionRequest::Swap(ServerReflectionRequest* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ServerReflectionRequest::InternalSwap(ServerReflectionRequest* other) {
-  host_.Swap(&other->host_);
-  std::swap(message_request_, other->message_request_);
-  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ServerReflectionRequest::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ServerReflectionRequest_descriptor_;
-  metadata.reflection = ServerReflectionRequest_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ServerReflectionRequest
-
-// optional string host = 1;
-void ServerReflectionRequest::clear_host() {
-  host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ServerReflectionRequest::host() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  return host_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServerReflectionRequest::set_host(const ::std::string& value) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-void ServerReflectionRequest::set_host(const char* value) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-void ServerReflectionRequest::set_host(const char* value, size_t size) {
-  
-  host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-::std::string* ServerReflectionRequest::mutable_host() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  return host_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionRequest::release_host() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-  
-  return host_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServerReflectionRequest::set_allocated_host(::std::string* host) {
-  if (host != NULL) {
-    
-  } else {
-    
-  }
-  host_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), host);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.host)
-}
-
-// optional string file_by_filename = 3;
-bool ServerReflectionRequest::has_file_by_filename() const {
-  return message_request_case() == kFileByFilename;
-}
-void ServerReflectionRequest::set_has_file_by_filename() {
-  _oneof_case_[0] = kFileByFilename;
-}
-void ServerReflectionRequest::clear_file_by_filename() {
-  if (has_file_by_filename()) {
-    message_request_.file_by_filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-const ::std::string& ServerReflectionRequest::file_by_filename() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (has_file_by_filename()) {
-    return message_request_.file_by_filename_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-void ServerReflectionRequest::set_file_by_filename(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-void ServerReflectionRequest::set_file_by_filename(const char* value) {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-void ServerReflectionRequest::set_file_by_filename(const char* value, size_t size) {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_by_filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-::std::string* ServerReflectionRequest::mutable_file_by_filename() {
-  if (!has_file_by_filename()) {
-    clear_message_request();
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  return message_request_.file_by_filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionRequest::release_file_by_filename() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-  if (has_file_by_filename()) {
-    clear_has_message_request();
-    return message_request_.file_by_filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionRequest::set_allocated_file_by_filename(::std::string* file_by_filename) {
-  if (!has_file_by_filename()) {
-    message_request_.file_by_filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (file_by_filename != NULL) {
-    set_has_file_by_filename();
-    message_request_.file_by_filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        file_by_filename);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_by_filename)
-}
-
-// optional string file_containing_symbol = 4;
-bool ServerReflectionRequest::has_file_containing_symbol() const {
-  return message_request_case() == kFileContainingSymbol;
-}
-void ServerReflectionRequest::set_has_file_containing_symbol() {
-  _oneof_case_[0] = kFileContainingSymbol;
-}
-void ServerReflectionRequest::clear_file_containing_symbol() {
-  if (has_file_containing_symbol()) {
-    message_request_.file_containing_symbol_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-const ::std::string& ServerReflectionRequest::file_containing_symbol() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (has_file_containing_symbol()) {
-    return message_request_.file_containing_symbol_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-void ServerReflectionRequest::set_file_containing_symbol(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-void ServerReflectionRequest::set_file_containing_symbol(const char* value) {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-void ServerReflectionRequest::set_file_containing_symbol(const char* value, size_t size) {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.file_containing_symbol_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-::std::string* ServerReflectionRequest::mutable_file_containing_symbol() {
-  if (!has_file_containing_symbol()) {
-    clear_message_request();
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  return message_request_.file_containing_symbol_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionRequest::release_file_containing_symbol() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-  if (has_file_containing_symbol()) {
-    clear_has_message_request();
-    return message_request_.file_containing_symbol_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionRequest::set_allocated_file_containing_symbol(::std::string* file_containing_symbol) {
-  if (!has_file_containing_symbol()) {
-    message_request_.file_containing_symbol_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (file_containing_symbol != NULL) {
-    set_has_file_containing_symbol();
-    message_request_.file_containing_symbol_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        file_containing_symbol);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_symbol)
-}
-
-// optional .grpc.reflection.v1alpha.ExtensionRequest file_containing_extension = 5;
-bool ServerReflectionRequest::has_file_containing_extension() const {
-  return message_request_case() == kFileContainingExtension;
-}
-void ServerReflectionRequest::set_has_file_containing_extension() {
-  _oneof_case_[0] = kFileContainingExtension;
-}
-void ServerReflectionRequest::clear_file_containing_extension() {
-  if (has_file_containing_extension()) {
-    delete message_request_.file_containing_extension_;
-    clear_has_message_request();
-  }
-}
- const ::grpc::reflection::v1alpha::ExtensionRequest& ServerReflectionRequest::file_containing_extension() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  return has_file_containing_extension()
-      ? *message_request_.file_containing_extension_
-      : ::grpc::reflection::v1alpha::ExtensionRequest::default_instance();
-}
-::grpc::reflection::v1alpha::ExtensionRequest* ServerReflectionRequest::mutable_file_containing_extension() {
-  if (!has_file_containing_extension()) {
-    clear_message_request();
-    set_has_file_containing_extension();
-    message_request_.file_containing_extension_ = new ::grpc::reflection::v1alpha::ExtensionRequest;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  return message_request_.file_containing_extension_;
-}
-::grpc::reflection::v1alpha::ExtensionRequest* ServerReflectionRequest::release_file_containing_extension() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-  if (has_file_containing_extension()) {
-    clear_has_message_request();
-    ::grpc::reflection::v1alpha::ExtensionRequest* temp = message_request_.file_containing_extension_;
-    message_request_.file_containing_extension_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionRequest::set_allocated_file_containing_extension(::grpc::reflection::v1alpha::ExtensionRequest* file_containing_extension) {
-  clear_message_request();
-  if (file_containing_extension) {
-    set_has_file_containing_extension();
-    message_request_.file_containing_extension_ = file_containing_extension;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.file_containing_extension)
-}
-
-// optional string all_extension_numbers_of_type = 6;
-bool ServerReflectionRequest::has_all_extension_numbers_of_type() const {
-  return message_request_case() == kAllExtensionNumbersOfType;
-}
-void ServerReflectionRequest::set_has_all_extension_numbers_of_type() {
-  _oneof_case_[0] = kAllExtensionNumbersOfType;
-}
-void ServerReflectionRequest::clear_all_extension_numbers_of_type() {
-  if (has_all_extension_numbers_of_type()) {
-    message_request_.all_extension_numbers_of_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-const ::std::string& ServerReflectionRequest::all_extension_numbers_of_type() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (has_all_extension_numbers_of_type()) {
-    return message_request_.all_extension_numbers_of_type_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-void ServerReflectionRequest::set_all_extension_numbers_of_type(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-void ServerReflectionRequest::set_all_extension_numbers_of_type(const char* value) {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-void ServerReflectionRequest::set_all_extension_numbers_of_type(const char* value, size_t size) {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.all_extension_numbers_of_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-::std::string* ServerReflectionRequest::mutable_all_extension_numbers_of_type() {
-  if (!has_all_extension_numbers_of_type()) {
-    clear_message_request();
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  return message_request_.all_extension_numbers_of_type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionRequest::release_all_extension_numbers_of_type() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-  if (has_all_extension_numbers_of_type()) {
-    clear_has_message_request();
-    return message_request_.all_extension_numbers_of_type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionRequest::set_allocated_all_extension_numbers_of_type(::std::string* all_extension_numbers_of_type) {
-  if (!has_all_extension_numbers_of_type()) {
-    message_request_.all_extension_numbers_of_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (all_extension_numbers_of_type != NULL) {
-    set_has_all_extension_numbers_of_type();
-    message_request_.all_extension_numbers_of_type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        all_extension_numbers_of_type);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.all_extension_numbers_of_type)
-}
-
-// optional string list_services = 7;
-bool ServerReflectionRequest::has_list_services() const {
-  return message_request_case() == kListServices;
-}
-void ServerReflectionRequest::set_has_list_services() {
-  _oneof_case_[0] = kListServices;
-}
-void ServerReflectionRequest::clear_list_services() {
-  if (has_list_services()) {
-    message_request_.list_services_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-    clear_has_message_request();
-  }
-}
-const ::std::string& ServerReflectionRequest::list_services() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (has_list_services()) {
-    return message_request_.list_services_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
-}
-void ServerReflectionRequest::set_list_services(const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-void ServerReflectionRequest::set_list_services(const char* value) {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-void ServerReflectionRequest::set_list_services(const char* value, size_t size) {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  message_request_.list_services_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
-      reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-::std::string* ServerReflectionRequest::mutable_list_services() {
-  if (!has_list_services()) {
-    clear_message_request();
-    set_has_list_services();
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  return message_request_.list_services_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionRequest::release_list_services() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-  if (has_list_services()) {
-    clear_has_message_request();
-    return message_request_.list_services_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionRequest::set_allocated_list_services(::std::string* list_services) {
-  if (!has_list_services()) {
-    message_request_.list_services_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  }
-  clear_message_request();
-  if (list_services != NULL) {
-    set_has_list_services();
-    message_request_.list_services_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-        list_services);
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionRequest.list_services)
-}
-
-bool ServerReflectionRequest::has_message_request() const {
-  return message_request_case() != MESSAGE_REQUEST_NOT_SET;
-}
-void ServerReflectionRequest::clear_has_message_request() {
-  _oneof_case_[0] = MESSAGE_REQUEST_NOT_SET;
-}
-ServerReflectionRequest::MessageRequestCase ServerReflectionRequest::message_request_case() const {
-  return ServerReflectionRequest::MessageRequestCase(_oneof_case_[0]);
-}
-inline const ServerReflectionRequest* ServerReflectionRequest::internal_default_instance() {
-  return &ServerReflectionRequest_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ExtensionRequest::kContainingTypeFieldNumber;
-const int ExtensionRequest::kExtensionNumberFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ExtensionRequest::ExtensionRequest()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ExtensionRequest)
-}
-
-void ExtensionRequest::InitAsDefaultInstance() {
-}
-
-ExtensionRequest::ExtensionRequest(const ExtensionRequest& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ExtensionRequest)
-}
-
-void ExtensionRequest::SharedCtor() {
-  containing_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  extension_number_ = 0;
-  _cached_size_ = 0;
-}
-
-ExtensionRequest::~ExtensionRequest() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ExtensionRequest)
-  SharedDtor();
-}
-
-void ExtensionRequest::SharedDtor() {
-  containing_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void ExtensionRequest::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ExtensionRequest::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ExtensionRequest_descriptor_;
-}
-
-const ExtensionRequest& ExtensionRequest::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ExtensionRequest> ExtensionRequest_default_instance_;
-
-ExtensionRequest* ExtensionRequest::New(::google::protobuf::Arena* arena) const {
-  ExtensionRequest* n = new ExtensionRequest;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ExtensionRequest::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ExtensionRequest)
-  containing_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  extension_number_ = 0;
-}
-
-bool ExtensionRequest::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ExtensionRequest)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional string containing_type = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_containing_type()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->containing_type().data(), this->containing_type().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ExtensionRequest.containing_type"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(16)) goto parse_extension_number;
-        break;
-      }
-
-      // optional int32 extension_number = 2;
-      case 2: {
-        if (tag == 16) {
-         parse_extension_number:
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &extension_number_)));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ExtensionRequest)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ExtensionRequest)
-  return false;
-#undef DO_
-}
-
-void ExtensionRequest::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ExtensionRequest)
-  // optional string containing_type = 1;
-  if (this->containing_type().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->containing_type().data(), this->containing_type().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ExtensionRequest.containing_type");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->containing_type(), output);
-  }
-
-  // optional int32 extension_number = 2;
-  if (this->extension_number() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->extension_number(), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ExtensionRequest)
-}
-
-::google::protobuf::uint8* ExtensionRequest::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ExtensionRequest)
-  // optional string containing_type = 1;
-  if (this->containing_type().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->containing_type().data(), this->containing_type().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ExtensionRequest.containing_type");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->containing_type(), target);
-  }
-
-  // optional int32 extension_number = 2;
-  if (this->extension_number() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->extension_number(), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ExtensionRequest)
-  return target;
-}
-
-size_t ExtensionRequest::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ExtensionRequest)
-  size_t total_size = 0;
-
-  // optional string containing_type = 1;
-  if (this->containing_type().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->containing_type());
-  }
-
-  // optional int32 extension_number = 2;
-  if (this->extension_number() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->extension_number());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ExtensionRequest::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ExtensionRequest)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ExtensionRequest* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ExtensionRequest>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ExtensionRequest)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ExtensionRequest)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ExtensionRequest::MergeFrom(const ExtensionRequest& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ExtensionRequest)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ExtensionRequest::UnsafeMergeFrom(const ExtensionRequest& from) {
-  GOOGLE_DCHECK(&from != this);
-  if (from.containing_type().size() > 0) {
-
-    containing_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.containing_type_);
-  }
-  if (from.extension_number() != 0) {
-    set_extension_number(from.extension_number());
-  }
-}
-
-void ExtensionRequest::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ExtensionRequest)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ExtensionRequest::CopyFrom(const ExtensionRequest& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ExtensionRequest)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ExtensionRequest::IsInitialized() const {
-
-  return true;
-}
-
-void ExtensionRequest::Swap(ExtensionRequest* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ExtensionRequest::InternalSwap(ExtensionRequest* other) {
-  containing_type_.Swap(&other->containing_type_);
-  std::swap(extension_number_, other->extension_number_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ExtensionRequest::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ExtensionRequest_descriptor_;
-  metadata.reflection = ExtensionRequest_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ExtensionRequest
-
-// optional string containing_type = 1;
-void ExtensionRequest::clear_containing_type() {
-  containing_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ExtensionRequest::containing_type() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  return containing_type_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ExtensionRequest::set_containing_type(const ::std::string& value) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-void ExtensionRequest::set_containing_type(const char* value) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-void ExtensionRequest::set_containing_type(const char* value, size_t size) {
-  
-  containing_type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-::std::string* ExtensionRequest::mutable_containing_type() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  return containing_type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ExtensionRequest::release_containing_type() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-  
-  return containing_type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ExtensionRequest::set_allocated_containing_type(::std::string* containing_type) {
-  if (containing_type != NULL) {
-    
-  } else {
-    
-  }
-  containing_type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), containing_type);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ExtensionRequest.containing_type)
-}
-
-// optional int32 extension_number = 2;
-void ExtensionRequest::clear_extension_number() {
-  extension_number_ = 0;
-}
-::google::protobuf::int32 ExtensionRequest::extension_number() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionRequest.extension_number)
-  return extension_number_;
-}
-void ExtensionRequest::set_extension_number(::google::protobuf::int32 value) {
-  
-  extension_number_ = value;
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionRequest.extension_number)
-}
-
-inline const ExtensionRequest* ExtensionRequest::internal_default_instance() {
-  return &ExtensionRequest_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ServerReflectionResponse::kValidHostFieldNumber;
-const int ServerReflectionResponse::kOriginalRequestFieldNumber;
-const int ServerReflectionResponse::kFileDescriptorResponseFieldNumber;
-const int ServerReflectionResponse::kAllExtensionNumbersResponseFieldNumber;
-const int ServerReflectionResponse::kListServicesResponseFieldNumber;
-const int ServerReflectionResponse::kErrorResponseFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ServerReflectionResponse::ServerReflectionResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ServerReflectionResponse)
-}
-
-void ServerReflectionResponse::InitAsDefaultInstance() {
-  original_request_ = const_cast< ::grpc::reflection::v1alpha::ServerReflectionRequest*>(
-      ::grpc::reflection::v1alpha::ServerReflectionRequest::internal_default_instance());
-  ServerReflectionResponse_default_oneof_instance_->file_descriptor_response_ = const_cast< ::grpc::reflection::v1alpha::FileDescriptorResponse*>(
-      ::grpc::reflection::v1alpha::FileDescriptorResponse::internal_default_instance());
-  ServerReflectionResponse_default_oneof_instance_->all_extension_numbers_response_ = const_cast< ::grpc::reflection::v1alpha::ExtensionNumberResponse*>(
-      ::grpc::reflection::v1alpha::ExtensionNumberResponse::internal_default_instance());
-  ServerReflectionResponse_default_oneof_instance_->list_services_response_ = const_cast< ::grpc::reflection::v1alpha::ListServiceResponse*>(
-      ::grpc::reflection::v1alpha::ListServiceResponse::internal_default_instance());
-  ServerReflectionResponse_default_oneof_instance_->error_response_ = const_cast< ::grpc::reflection::v1alpha::ErrorResponse*>(
-      ::grpc::reflection::v1alpha::ErrorResponse::internal_default_instance());
-}
-
-ServerReflectionResponse::ServerReflectionResponse(const ServerReflectionResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ServerReflectionResponse)
-}
-
-void ServerReflectionResponse::SharedCtor() {
-  valid_host_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  original_request_ = NULL;
-  clear_has_message_response();
-  _cached_size_ = 0;
-}
-
-ServerReflectionResponse::~ServerReflectionResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ServerReflectionResponse)
-  SharedDtor();
-}
-
-void ServerReflectionResponse::SharedDtor() {
-  valid_host_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (has_message_response()) {
-    clear_message_response();
-  }
-  if (this != &ServerReflectionResponse_default_instance_.get()) {
-    delete original_request_;
-  }
-}
-
-void ServerReflectionResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ServerReflectionResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ServerReflectionResponse_descriptor_;
-}
-
-const ServerReflectionResponse& ServerReflectionResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ServerReflectionResponse> ServerReflectionResponse_default_instance_;
-
-ServerReflectionResponse* ServerReflectionResponse::New(::google::protobuf::Arena* arena) const {
-  ServerReflectionResponse* n = new ServerReflectionResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ServerReflectionResponse::clear_message_response() {
-// @@protoc_insertion_point(one_of_clear_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  switch (message_response_case()) {
-    case kFileDescriptorResponse: {
-      delete message_response_.file_descriptor_response_;
-      break;
-    }
-    case kAllExtensionNumbersResponse: {
-      delete message_response_.all_extension_numbers_response_;
-      break;
-    }
-    case kListServicesResponse: {
-      delete message_response_.list_services_response_;
-      break;
-    }
-    case kErrorResponse: {
-      delete message_response_.error_response_;
-      break;
-    }
-    case MESSAGE_RESPONSE_NOT_SET: {
-      break;
-    }
-  }
-  _oneof_case_[0] = MESSAGE_RESPONSE_NOT_SET;
-}
-
-
-void ServerReflectionResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  valid_host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  if (GetArenaNoVirtual() == NULL && original_request_ != NULL) delete original_request_;
-  original_request_ = NULL;
-  clear_message_response();
-}
-
-bool ServerReflectionResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional string valid_host = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_valid_host()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->valid_host().data(), this->valid_host().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServerReflectionResponse.valid_host"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(18)) goto parse_original_request;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-      case 2: {
-        if (tag == 18) {
-         parse_original_request:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_original_request()));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(34)) goto parse_file_descriptor_response;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-      case 4: {
-        if (tag == 34) {
-         parse_file_descriptor_response:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_file_descriptor_response()));
-        } else {
-          goto handle_unusual;
-        }
-        goto after_error_response;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-      case 5: {
-        if (tag == 42) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_all_extension_numbers_response()));
-        } else {
-          goto handle_unusual;
-        }
-        goto after_error_response;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-      case 6: {
-        if (tag == 50) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_list_services_response()));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(58)) goto parse_error_response;
-        break;
-      }
-
-      // optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-      case 7: {
-        if (tag == 58) {
-         parse_error_response:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-               input, mutable_error_response()));
-        } else {
-          goto handle_unusual;
-        }
-       after_error_response:
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ServerReflectionResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ServerReflectionResponse)
-  return false;
-#undef DO_
-}
-
-void ServerReflectionResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  // optional string valid_host = 1;
-  if (this->valid_host().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->valid_host().data(), this->valid_host().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionResponse.valid_host");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->valid_host(), output);
-  }
-
-  // optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-  if (this->has_original_request()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      2, *this->original_request_, output);
-  }
-
-  // optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-  if (has_file_descriptor_response()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4, *message_response_.file_descriptor_response_, output);
-  }
-
-  // optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-  if (has_all_extension_numbers_response()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      5, *message_response_.all_extension_numbers_response_, output);
-  }
-
-  // optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-  if (has_list_services_response()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      6, *message_response_.list_services_response_, output);
-  }
-
-  // optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-  if (has_error_response()) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      7, *message_response_.error_response_, output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ServerReflectionResponse)
-}
-
-::google::protobuf::uint8* ServerReflectionResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  // optional string valid_host = 1;
-  if (this->valid_host().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->valid_host().data(), this->valid_host().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServerReflectionResponse.valid_host");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->valid_host(), target);
-  }
-
-  // optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-  if (this->has_original_request()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        2, *this->original_request_, false, target);
-  }
-
-  // optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-  if (has_file_descriptor_response()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        4, *message_response_.file_descriptor_response_, false, target);
-  }
-
-  // optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-  if (has_all_extension_numbers_response()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        5, *message_response_.all_extension_numbers_response_, false, target);
-  }
-
-  // optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-  if (has_list_services_response()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        6, *message_response_.list_services_response_, false, target);
-  }
-
-  // optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-  if (has_error_response()) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        7, *message_response_.error_response_, false, target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ServerReflectionResponse)
-  return target;
-}
-
-size_t ServerReflectionResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  size_t total_size = 0;
-
-  // optional string valid_host = 1;
-  if (this->valid_host().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->valid_host());
-  }
-
-  // optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-  if (this->has_original_request()) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        *this->original_request_);
-  }
-
-  switch (message_response_case()) {
-    // optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-    case kFileDescriptorResponse: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          *message_response_.file_descriptor_response_);
-      break;
-    }
-    // optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-    case kAllExtensionNumbersResponse: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          *message_response_.all_extension_numbers_response_);
-      break;
-    }
-    // optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-    case kListServicesResponse: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          *message_response_.list_services_response_);
-      break;
-    }
-    // optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-    case kErrorResponse: {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          *message_response_.error_response_);
-      break;
-    }
-    case MESSAGE_RESPONSE_NOT_SET: {
-      break;
-    }
-  }
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ServerReflectionResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ServerReflectionResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ServerReflectionResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ServerReflectionResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ServerReflectionResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ServerReflectionResponse::MergeFrom(const ServerReflectionResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ServerReflectionResponse::UnsafeMergeFrom(const ServerReflectionResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  switch (from.message_response_case()) {
-    case kFileDescriptorResponse: {
-      mutable_file_descriptor_response()->::grpc::reflection::v1alpha::FileDescriptorResponse::MergeFrom(from.file_descriptor_response());
-      break;
-    }
-    case kAllExtensionNumbersResponse: {
-      mutable_all_extension_numbers_response()->::grpc::reflection::v1alpha::ExtensionNumberResponse::MergeFrom(from.all_extension_numbers_response());
-      break;
-    }
-    case kListServicesResponse: {
-      mutable_list_services_response()->::grpc::reflection::v1alpha::ListServiceResponse::MergeFrom(from.list_services_response());
-      break;
-    }
-    case kErrorResponse: {
-      mutable_error_response()->::grpc::reflection::v1alpha::ErrorResponse::MergeFrom(from.error_response());
-      break;
-    }
-    case MESSAGE_RESPONSE_NOT_SET: {
-      break;
-    }
-  }
-  if (from.valid_host().size() > 0) {
-
-    valid_host_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.valid_host_);
-  }
-  if (from.has_original_request()) {
-    mutable_original_request()->::grpc::reflection::v1alpha::ServerReflectionRequest::MergeFrom(from.original_request());
-  }
-}
-
-void ServerReflectionResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ServerReflectionResponse::CopyFrom(const ServerReflectionResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ServerReflectionResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ServerReflectionResponse::IsInitialized() const {
-
-  return true;
-}
-
-void ServerReflectionResponse::Swap(ServerReflectionResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ServerReflectionResponse::InternalSwap(ServerReflectionResponse* other) {
-  valid_host_.Swap(&other->valid_host_);
-  std::swap(original_request_, other->original_request_);
-  std::swap(message_response_, other->message_response_);
-  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ServerReflectionResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ServerReflectionResponse_descriptor_;
-  metadata.reflection = ServerReflectionResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ServerReflectionResponse
-
-// optional string valid_host = 1;
-void ServerReflectionResponse::clear_valid_host() {
-  valid_host_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ServerReflectionResponse::valid_host() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  return valid_host_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServerReflectionResponse::set_valid_host(const ::std::string& value) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-void ServerReflectionResponse::set_valid_host(const char* value) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-void ServerReflectionResponse::set_valid_host(const char* value, size_t size) {
-  
-  valid_host_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-::std::string* ServerReflectionResponse::mutable_valid_host() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  return valid_host_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServerReflectionResponse::release_valid_host() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-  
-  return valid_host_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServerReflectionResponse::set_allocated_valid_host(::std::string* valid_host) {
-  if (valid_host != NULL) {
-    
-  } else {
-    
-  }
-  valid_host_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), valid_host);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.valid_host)
-}
-
-// optional .grpc.reflection.v1alpha.ServerReflectionRequest original_request = 2;
-bool ServerReflectionResponse::has_original_request() const {
-  return this != internal_default_instance() && original_request_ != NULL;
-}
-void ServerReflectionResponse::clear_original_request() {
-  if (GetArenaNoVirtual() == NULL && original_request_ != NULL) delete original_request_;
-  original_request_ = NULL;
-}
-const ::grpc::reflection::v1alpha::ServerReflectionRequest& ServerReflectionResponse::original_request() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  return original_request_ != NULL ? *original_request_
-                         : *::grpc::reflection::v1alpha::ServerReflectionRequest::internal_default_instance();
-}
-::grpc::reflection::v1alpha::ServerReflectionRequest* ServerReflectionResponse::mutable_original_request() {
-  
-  if (original_request_ == NULL) {
-    original_request_ = new ::grpc::reflection::v1alpha::ServerReflectionRequest;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  return original_request_;
-}
-::grpc::reflection::v1alpha::ServerReflectionRequest* ServerReflectionResponse::release_original_request() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-  
-  ::grpc::reflection::v1alpha::ServerReflectionRequest* temp = original_request_;
-  original_request_ = NULL;
-  return temp;
-}
-void ServerReflectionResponse::set_allocated_original_request(::grpc::reflection::v1alpha::ServerReflectionRequest* original_request) {
-  delete original_request_;
-  original_request_ = original_request;
-  if (original_request) {
-    
-  } else {
-    
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.original_request)
-}
-
-// optional .grpc.reflection.v1alpha.FileDescriptorResponse file_descriptor_response = 4;
-bool ServerReflectionResponse::has_file_descriptor_response() const {
-  return message_response_case() == kFileDescriptorResponse;
-}
-void ServerReflectionResponse::set_has_file_descriptor_response() {
-  _oneof_case_[0] = kFileDescriptorResponse;
-}
-void ServerReflectionResponse::clear_file_descriptor_response() {
-  if (has_file_descriptor_response()) {
-    delete message_response_.file_descriptor_response_;
-    clear_has_message_response();
-  }
-}
- const ::grpc::reflection::v1alpha::FileDescriptorResponse& ServerReflectionResponse::file_descriptor_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  return has_file_descriptor_response()
-      ? *message_response_.file_descriptor_response_
-      : ::grpc::reflection::v1alpha::FileDescriptorResponse::default_instance();
-}
-::grpc::reflection::v1alpha::FileDescriptorResponse* ServerReflectionResponse::mutable_file_descriptor_response() {
-  if (!has_file_descriptor_response()) {
-    clear_message_response();
-    set_has_file_descriptor_response();
-    message_response_.file_descriptor_response_ = new ::grpc::reflection::v1alpha::FileDescriptorResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  return message_response_.file_descriptor_response_;
-}
-::grpc::reflection::v1alpha::FileDescriptorResponse* ServerReflectionResponse::release_file_descriptor_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-  if (has_file_descriptor_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::FileDescriptorResponse* temp = message_response_.file_descriptor_response_;
-    message_response_.file_descriptor_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionResponse::set_allocated_file_descriptor_response(::grpc::reflection::v1alpha::FileDescriptorResponse* file_descriptor_response) {
-  clear_message_response();
-  if (file_descriptor_response) {
-    set_has_file_descriptor_response();
-    message_response_.file_descriptor_response_ = file_descriptor_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.file_descriptor_response)
-}
-
-// optional .grpc.reflection.v1alpha.ExtensionNumberResponse all_extension_numbers_response = 5;
-bool ServerReflectionResponse::has_all_extension_numbers_response() const {
-  return message_response_case() == kAllExtensionNumbersResponse;
-}
-void ServerReflectionResponse::set_has_all_extension_numbers_response() {
-  _oneof_case_[0] = kAllExtensionNumbersResponse;
-}
-void ServerReflectionResponse::clear_all_extension_numbers_response() {
-  if (has_all_extension_numbers_response()) {
-    delete message_response_.all_extension_numbers_response_;
-    clear_has_message_response();
-  }
-}
- const ::grpc::reflection::v1alpha::ExtensionNumberResponse& ServerReflectionResponse::all_extension_numbers_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  return has_all_extension_numbers_response()
-      ? *message_response_.all_extension_numbers_response_
-      : ::grpc::reflection::v1alpha::ExtensionNumberResponse::default_instance();
-}
-::grpc::reflection::v1alpha::ExtensionNumberResponse* ServerReflectionResponse::mutable_all_extension_numbers_response() {
-  if (!has_all_extension_numbers_response()) {
-    clear_message_response();
-    set_has_all_extension_numbers_response();
-    message_response_.all_extension_numbers_response_ = new ::grpc::reflection::v1alpha::ExtensionNumberResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  return message_response_.all_extension_numbers_response_;
-}
-::grpc::reflection::v1alpha::ExtensionNumberResponse* ServerReflectionResponse::release_all_extension_numbers_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-  if (has_all_extension_numbers_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ExtensionNumberResponse* temp = message_response_.all_extension_numbers_response_;
-    message_response_.all_extension_numbers_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionResponse::set_allocated_all_extension_numbers_response(::grpc::reflection::v1alpha::ExtensionNumberResponse* all_extension_numbers_response) {
-  clear_message_response();
-  if (all_extension_numbers_response) {
-    set_has_all_extension_numbers_response();
-    message_response_.all_extension_numbers_response_ = all_extension_numbers_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.all_extension_numbers_response)
-}
-
-// optional .grpc.reflection.v1alpha.ListServiceResponse list_services_response = 6;
-bool ServerReflectionResponse::has_list_services_response() const {
-  return message_response_case() == kListServicesResponse;
-}
-void ServerReflectionResponse::set_has_list_services_response() {
-  _oneof_case_[0] = kListServicesResponse;
-}
-void ServerReflectionResponse::clear_list_services_response() {
-  if (has_list_services_response()) {
-    delete message_response_.list_services_response_;
-    clear_has_message_response();
-  }
-}
- const ::grpc::reflection::v1alpha::ListServiceResponse& ServerReflectionResponse::list_services_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  return has_list_services_response()
-      ? *message_response_.list_services_response_
-      : ::grpc::reflection::v1alpha::ListServiceResponse::default_instance();
-}
-::grpc::reflection::v1alpha::ListServiceResponse* ServerReflectionResponse::mutable_list_services_response() {
-  if (!has_list_services_response()) {
-    clear_message_response();
-    set_has_list_services_response();
-    message_response_.list_services_response_ = new ::grpc::reflection::v1alpha::ListServiceResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  return message_response_.list_services_response_;
-}
-::grpc::reflection::v1alpha::ListServiceResponse* ServerReflectionResponse::release_list_services_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-  if (has_list_services_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ListServiceResponse* temp = message_response_.list_services_response_;
-    message_response_.list_services_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionResponse::set_allocated_list_services_response(::grpc::reflection::v1alpha::ListServiceResponse* list_services_response) {
-  clear_message_response();
-  if (list_services_response) {
-    set_has_list_services_response();
-    message_response_.list_services_response_ = list_services_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.list_services_response)
-}
-
-// optional .grpc.reflection.v1alpha.ErrorResponse error_response = 7;
-bool ServerReflectionResponse::has_error_response() const {
-  return message_response_case() == kErrorResponse;
-}
-void ServerReflectionResponse::set_has_error_response() {
-  _oneof_case_[0] = kErrorResponse;
-}
-void ServerReflectionResponse::clear_error_response() {
-  if (has_error_response()) {
-    delete message_response_.error_response_;
-    clear_has_message_response();
-  }
-}
- const ::grpc::reflection::v1alpha::ErrorResponse& ServerReflectionResponse::error_response() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  return has_error_response()
-      ? *message_response_.error_response_
-      : ::grpc::reflection::v1alpha::ErrorResponse::default_instance();
-}
-::grpc::reflection::v1alpha::ErrorResponse* ServerReflectionResponse::mutable_error_response() {
-  if (!has_error_response()) {
-    clear_message_response();
-    set_has_error_response();
-    message_response_.error_response_ = new ::grpc::reflection::v1alpha::ErrorResponse;
-  }
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  return message_response_.error_response_;
-}
-::grpc::reflection::v1alpha::ErrorResponse* ServerReflectionResponse::release_error_response() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-  if (has_error_response()) {
-    clear_has_message_response();
-    ::grpc::reflection::v1alpha::ErrorResponse* temp = message_response_.error_response_;
-    message_response_.error_response_ = NULL;
-    return temp;
-  } else {
-    return NULL;
-  }
-}
-void ServerReflectionResponse::set_allocated_error_response(::grpc::reflection::v1alpha::ErrorResponse* error_response) {
-  clear_message_response();
-  if (error_response) {
-    set_has_error_response();
-    message_response_.error_response_ = error_response;
-  }
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServerReflectionResponse.error_response)
-}
-
-bool ServerReflectionResponse::has_message_response() const {
-  return message_response_case() != MESSAGE_RESPONSE_NOT_SET;
-}
-void ServerReflectionResponse::clear_has_message_response() {
-  _oneof_case_[0] = MESSAGE_RESPONSE_NOT_SET;
-}
-ServerReflectionResponse::MessageResponseCase ServerReflectionResponse::message_response_case() const {
-  return ServerReflectionResponse::MessageResponseCase(_oneof_case_[0]);
-}
-inline const ServerReflectionResponse* ServerReflectionResponse::internal_default_instance() {
-  return &ServerReflectionResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int FileDescriptorResponse::kFileDescriptorProtoFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-FileDescriptorResponse::FileDescriptorResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.FileDescriptorResponse)
-}
-
-void FileDescriptorResponse::InitAsDefaultInstance() {
-}
-
-FileDescriptorResponse::FileDescriptorResponse(const FileDescriptorResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.FileDescriptorResponse)
-}
-
-void FileDescriptorResponse::SharedCtor() {
-  _cached_size_ = 0;
-}
-
-FileDescriptorResponse::~FileDescriptorResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.FileDescriptorResponse)
-  SharedDtor();
-}
-
-void FileDescriptorResponse::SharedDtor() {
-}
-
-void FileDescriptorResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* FileDescriptorResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return FileDescriptorResponse_descriptor_;
-}
-
-const FileDescriptorResponse& FileDescriptorResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<FileDescriptorResponse> FileDescriptorResponse_default_instance_;
-
-FileDescriptorResponse* FileDescriptorResponse::New(::google::protobuf::Arena* arena) const {
-  FileDescriptorResponse* n = new FileDescriptorResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void FileDescriptorResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  file_descriptor_proto_.Clear();
-}
-
-bool FileDescriptorResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated bytes file_descriptor_proto = 1;
-      case 1: {
-        if (tag == 10) {
-         parse_file_descriptor_proto:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
-                input, this->add_file_descriptor_proto()));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(10)) goto parse_file_descriptor_proto;
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.FileDescriptorResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.FileDescriptorResponse)
-  return false;
-#undef DO_
-}
-
-void FileDescriptorResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  // repeated bytes file_descriptor_proto = 1;
-  for (int i = 0; i < this->file_descriptor_proto_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteBytes(
-      1, this->file_descriptor_proto(i), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.FileDescriptorResponse)
-}
-
-::google::protobuf::uint8* FileDescriptorResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  // repeated bytes file_descriptor_proto = 1;
-  for (int i = 0; i < this->file_descriptor_proto_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteBytesToArray(1, this->file_descriptor_proto(i), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.FileDescriptorResponse)
-  return target;
-}
-
-size_t FileDescriptorResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  size_t total_size = 0;
-
-  // repeated bytes file_descriptor_proto = 1;
-  total_size += 1 *
-      ::google::protobuf::internal::FromIntSize(this->file_descriptor_proto_size());
-  for (int i = 0; i < this->file_descriptor_proto_size(); i++) {
-    total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
-      this->file_descriptor_proto(i));
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void FileDescriptorResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const FileDescriptorResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const FileDescriptorResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.FileDescriptorResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.FileDescriptorResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void FileDescriptorResponse::MergeFrom(const FileDescriptorResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void FileDescriptorResponse::UnsafeMergeFrom(const FileDescriptorResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  file_descriptor_proto_.UnsafeMergeFrom(from.file_descriptor_proto_);
-}
-
-void FileDescriptorResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void FileDescriptorResponse::CopyFrom(const FileDescriptorResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.FileDescriptorResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool FileDescriptorResponse::IsInitialized() const {
-
-  return true;
-}
-
-void FileDescriptorResponse::Swap(FileDescriptorResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void FileDescriptorResponse::InternalSwap(FileDescriptorResponse* other) {
-  file_descriptor_proto_.UnsafeArenaSwap(&other->file_descriptor_proto_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata FileDescriptorResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = FileDescriptorResponse_descriptor_;
-  metadata.reflection = FileDescriptorResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// FileDescriptorResponse
-
-// repeated bytes file_descriptor_proto = 1;
-int FileDescriptorResponse::file_descriptor_proto_size() const {
-  return file_descriptor_proto_.size();
-}
-void FileDescriptorResponse::clear_file_descriptor_proto() {
-  file_descriptor_proto_.Clear();
-}
-const ::std::string& FileDescriptorResponse::file_descriptor_proto(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Get(index);
-}
-::std::string* FileDescriptorResponse::mutable_file_descriptor_proto(int index) {
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Mutable(index);
-}
-void FileDescriptorResponse::set_file_descriptor_proto(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  file_descriptor_proto_.Mutable(index)->assign(value);
-}
-void FileDescriptorResponse::set_file_descriptor_proto(int index, const char* value) {
-  file_descriptor_proto_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-void FileDescriptorResponse::set_file_descriptor_proto(int index, const void* value, size_t size) {
-  file_descriptor_proto_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-::std::string* FileDescriptorResponse::add_file_descriptor_proto() {
-  // @@protoc_insertion_point(field_add_mutable:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_.Add();
-}
-void FileDescriptorResponse::add_file_descriptor_proto(const ::std::string& value) {
-  file_descriptor_proto_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-void FileDescriptorResponse::add_file_descriptor_proto(const char* value) {
-  file_descriptor_proto_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-void FileDescriptorResponse::add_file_descriptor_proto(const void* value, size_t size) {
-  file_descriptor_proto_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-}
-const ::google::protobuf::RepeatedPtrField< ::std::string>&
-FileDescriptorResponse::file_descriptor_proto() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return file_descriptor_proto_;
-}
-::google::protobuf::RepeatedPtrField< ::std::string>*
-FileDescriptorResponse::mutable_file_descriptor_proto() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.FileDescriptorResponse.file_descriptor_proto)
-  return &file_descriptor_proto_;
-}
-
-inline const FileDescriptorResponse* FileDescriptorResponse::internal_default_instance() {
-  return &FileDescriptorResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ExtensionNumberResponse::kBaseTypeNameFieldNumber;
-const int ExtensionNumberResponse::kExtensionNumberFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ExtensionNumberResponse::ExtensionNumberResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ExtensionNumberResponse)
-}
-
-void ExtensionNumberResponse::InitAsDefaultInstance() {
-}
-
-ExtensionNumberResponse::ExtensionNumberResponse(const ExtensionNumberResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ExtensionNumberResponse)
-}
-
-void ExtensionNumberResponse::SharedCtor() {
-  base_type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  _cached_size_ = 0;
-}
-
-ExtensionNumberResponse::~ExtensionNumberResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  SharedDtor();
-}
-
-void ExtensionNumberResponse::SharedDtor() {
-  base_type_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void ExtensionNumberResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ExtensionNumberResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ExtensionNumberResponse_descriptor_;
-}
-
-const ExtensionNumberResponse& ExtensionNumberResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ExtensionNumberResponse> ExtensionNumberResponse_default_instance_;
-
-ExtensionNumberResponse* ExtensionNumberResponse::New(::google::protobuf::Arena* arena) const {
-  ExtensionNumberResponse* n = new ExtensionNumberResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ExtensionNumberResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  base_type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  extension_number_.Clear();
-}
-
-bool ExtensionNumberResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional string base_type_name = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_base_type_name()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->base_type_name().data(), this->base_type_name().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(18)) goto parse_extension_number;
-        break;
-      }
-
-      // repeated int32 extension_number = 2;
-      case 2: {
-        if (tag == 18) {
-         parse_extension_number:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, this->mutable_extension_number())));
-        } else if (tag == 16) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 1, 18, input, this->mutable_extension_number())));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  return false;
-#undef DO_
-}
-
-void ExtensionNumberResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  // optional string base_type_name = 1;
-  if (this->base_type_name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->base_type_name().data(), this->base_type_name().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->base_type_name(), output);
-  }
-
-  // repeated int32 extension_number = 2;
-  if (this->extension_number_size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
-    output->WriteVarint32(_extension_number_cached_byte_size_);
-  }
-  for (int i = 0; i < this->extension_number_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32NoTag(
-      this->extension_number(i), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ExtensionNumberResponse)
-}
-
-::google::protobuf::uint8* ExtensionNumberResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  // optional string base_type_name = 1;
-  if (this->base_type_name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->base_type_name().data(), this->base_type_name().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->base_type_name(), target);
-  }
-
-  // repeated int32 extension_number = 2;
-  if (this->extension_number_size() > 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
-      2,
-      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
-      target);
-    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
-      _extension_number_cached_byte_size_, target);
-  }
-  for (int i = 0; i < this->extension_number_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteInt32NoTagToArray(this->extension_number(i), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  return target;
-}
-
-size_t ExtensionNumberResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  size_t total_size = 0;
-
-  // optional string base_type_name = 1;
-  if (this->base_type_name().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->base_type_name());
-  }
-
-  // repeated int32 extension_number = 2;
-  {
-    size_t data_size = 0;
-    unsigned int count = this->extension_number_size();
-    for (unsigned int i = 0; i < count; i++) {
-      data_size += ::google::protobuf::internal::WireFormatLite::
-        Int32Size(this->extension_number(i));
-    }
-    if (data_size > 0) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
-    }
-    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
-    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-    _extension_number_cached_byte_size_ = cached_size;
-    GOOGLE_SAFE_CONCURRENT_WRITES_END();
-    total_size += data_size;
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ExtensionNumberResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ExtensionNumberResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ExtensionNumberResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ExtensionNumberResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ExtensionNumberResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ExtensionNumberResponse::MergeFrom(const ExtensionNumberResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ExtensionNumberResponse::UnsafeMergeFrom(const ExtensionNumberResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  extension_number_.UnsafeMergeFrom(from.extension_number_);
-  if (from.base_type_name().size() > 0) {
-
-    base_type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.base_type_name_);
-  }
-}
-
-void ExtensionNumberResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ExtensionNumberResponse::CopyFrom(const ExtensionNumberResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ExtensionNumberResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ExtensionNumberResponse::IsInitialized() const {
-
-  return true;
-}
-
-void ExtensionNumberResponse::Swap(ExtensionNumberResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ExtensionNumberResponse::InternalSwap(ExtensionNumberResponse* other) {
-  base_type_name_.Swap(&other->base_type_name_);
-  extension_number_.UnsafeArenaSwap(&other->extension_number_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ExtensionNumberResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ExtensionNumberResponse_descriptor_;
-  metadata.reflection = ExtensionNumberResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ExtensionNumberResponse
-
-// optional string base_type_name = 1;
-void ExtensionNumberResponse::clear_base_type_name() {
-  base_type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ExtensionNumberResponse::base_type_name() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  return base_type_name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ExtensionNumberResponse::set_base_type_name(const ::std::string& value) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-void ExtensionNumberResponse::set_base_type_name(const char* value) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-void ExtensionNumberResponse::set_base_type_name(const char* value, size_t size) {
-  
-  base_type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-::std::string* ExtensionNumberResponse::mutable_base_type_name() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  return base_type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ExtensionNumberResponse::release_base_type_name() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-  
-  return base_type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ExtensionNumberResponse::set_allocated_base_type_name(::std::string* base_type_name) {
-  if (base_type_name != NULL) {
-    
-  } else {
-    
-  }
-  base_type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), base_type_name);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ExtensionNumberResponse.base_type_name)
-}
-
-// repeated int32 extension_number = 2;
-int ExtensionNumberResponse::extension_number_size() const {
-  return extension_number_.size();
-}
-void ExtensionNumberResponse::clear_extension_number() {
-  extension_number_.Clear();
-}
-::google::protobuf::int32 ExtensionNumberResponse::extension_number(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return extension_number_.Get(index);
-}
-void ExtensionNumberResponse::set_extension_number(int index, ::google::protobuf::int32 value) {
-  extension_number_.Set(index, value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-}
-void ExtensionNumberResponse::add_extension_number(::google::protobuf::int32 value) {
-  extension_number_.Add(value);
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-}
-const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
-ExtensionNumberResponse::extension_number() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return extension_number_;
-}
-::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
-ExtensionNumberResponse::mutable_extension_number() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.ExtensionNumberResponse.extension_number)
-  return &extension_number_;
-}
-
-inline const ExtensionNumberResponse* ExtensionNumberResponse::internal_default_instance() {
-  return &ExtensionNumberResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ListServiceResponse::kServiceFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ListServiceResponse::ListServiceResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ListServiceResponse)
-}
-
-void ListServiceResponse::InitAsDefaultInstance() {
-}
-
-ListServiceResponse::ListServiceResponse(const ListServiceResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ListServiceResponse)
-}
-
-void ListServiceResponse::SharedCtor() {
-  _cached_size_ = 0;
-}
-
-ListServiceResponse::~ListServiceResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ListServiceResponse)
-  SharedDtor();
-}
-
-void ListServiceResponse::SharedDtor() {
-}
-
-void ListServiceResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ListServiceResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ListServiceResponse_descriptor_;
-}
-
-const ListServiceResponse& ListServiceResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ListServiceResponse> ListServiceResponse_default_instance_;
-
-ListServiceResponse* ListServiceResponse::New(::google::protobuf::Arena* arena) const {
-  ListServiceResponse* n = new ListServiceResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ListServiceResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ListServiceResponse)
-  service_.Clear();
-}
-
-bool ListServiceResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ListServiceResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(input->IncrementRecursionDepth());
-         parse_loop_service:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
-                input, add_service()));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(10)) goto parse_loop_service;
-        input->UnsafeDecrementRecursionDepth();
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ListServiceResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ListServiceResponse)
-  return false;
-#undef DO_
-}
-
-void ListServiceResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ListServiceResponse)
-  // repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-  for (unsigned int i = 0, n = this->service_size(); i < n; i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      1, this->service(i), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ListServiceResponse)
-}
-
-::google::protobuf::uint8* ListServiceResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ListServiceResponse)
-  // repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-  for (unsigned int i = 0, n = this->service_size(); i < n; i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      InternalWriteMessageNoVirtualToArray(
-        1, this->service(i), false, target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ListServiceResponse)
-  return target;
-}
-
-size_t ListServiceResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ListServiceResponse)
-  size_t total_size = 0;
-
-  // repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-  {
-    unsigned int count = this->service_size();
-    total_size += 1UL * count;
-    for (unsigned int i = 0; i < count; i++) {
-      total_size +=
-        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-          this->service(i));
-    }
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ListServiceResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ListServiceResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ListServiceResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ListServiceResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ListServiceResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ListServiceResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ListServiceResponse::MergeFrom(const ListServiceResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ListServiceResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ListServiceResponse::UnsafeMergeFrom(const ListServiceResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  service_.MergeFrom(from.service_);
-}
-
-void ListServiceResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ListServiceResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ListServiceResponse::CopyFrom(const ListServiceResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ListServiceResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ListServiceResponse::IsInitialized() const {
-
-  return true;
-}
-
-void ListServiceResponse::Swap(ListServiceResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ListServiceResponse::InternalSwap(ListServiceResponse* other) {
-  service_.UnsafeArenaSwap(&other->service_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ListServiceResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ListServiceResponse_descriptor_;
-  metadata.reflection = ListServiceResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ListServiceResponse
-
-// repeated .grpc.reflection.v1alpha.ServiceResponse service = 1;
-int ListServiceResponse::service_size() const {
-  return service_.size();
-}
-void ListServiceResponse::clear_service() {
-  service_.Clear();
-}
-const ::grpc::reflection::v1alpha::ServiceResponse& ListServiceResponse::service(int index) const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Get(index);
-}
-::grpc::reflection::v1alpha::ServiceResponse* ListServiceResponse::mutable_service(int index) {
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Mutable(index);
-}
-::grpc::reflection::v1alpha::ServiceResponse* ListServiceResponse::add_service() {
-  // @@protoc_insertion_point(field_add:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_.Add();
-}
-::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >*
-ListServiceResponse::mutable_service() {
-  // @@protoc_insertion_point(field_mutable_list:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return &service_;
-}
-const ::google::protobuf::RepeatedPtrField< ::grpc::reflection::v1alpha::ServiceResponse >&
-ListServiceResponse::service() const {
-  // @@protoc_insertion_point(field_list:grpc.reflection.v1alpha.ListServiceResponse.service)
-  return service_;
-}
-
-inline const ListServiceResponse* ListServiceResponse::internal_default_instance() {
-  return &ListServiceResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ServiceResponse::kNameFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ServiceResponse::ServiceResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ServiceResponse)
-}
-
-void ServiceResponse::InitAsDefaultInstance() {
-}
-
-ServiceResponse::ServiceResponse(const ServiceResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ServiceResponse)
-}
-
-void ServiceResponse::SharedCtor() {
-  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  _cached_size_ = 0;
-}
-
-ServiceResponse::~ServiceResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ServiceResponse)
-  SharedDtor();
-}
-
-void ServiceResponse::SharedDtor() {
-  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void ServiceResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ServiceResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ServiceResponse_descriptor_;
-}
-
-const ServiceResponse& ServiceResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ServiceResponse> ServiceResponse_default_instance_;
-
-ServiceResponse* ServiceResponse::New(::google::protobuf::Arena* arena) const {
-  ServiceResponse* n = new ServiceResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ServiceResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ServiceResponse)
-  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-bool ServiceResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ServiceResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional string name = 1;
-      case 1: {
-        if (tag == 10) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_name()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->name().data(), this->name().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ServiceResponse.name"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ServiceResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ServiceResponse)
-  return false;
-#undef DO_
-}
-
-void ServiceResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ServiceResponse)
-  // optional string name = 1;
-  if (this->name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->name().data(), this->name().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServiceResponse.name");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      1, this->name(), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ServiceResponse)
-}
-
-::google::protobuf::uint8* ServiceResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ServiceResponse)
-  // optional string name = 1;
-  if (this->name().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->name().data(), this->name().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ServiceResponse.name");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->name(), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ServiceResponse)
-  return target;
-}
-
-size_t ServiceResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ServiceResponse)
-  size_t total_size = 0;
-
-  // optional string name = 1;
-  if (this->name().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->name());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ServiceResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ServiceResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ServiceResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ServiceResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ServiceResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ServiceResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ServiceResponse::MergeFrom(const ServiceResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ServiceResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ServiceResponse::UnsafeMergeFrom(const ServiceResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  if (from.name().size() > 0) {
-
-    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
-  }
-}
-
-void ServiceResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ServiceResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ServiceResponse::CopyFrom(const ServiceResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ServiceResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ServiceResponse::IsInitialized() const {
-
-  return true;
-}
-
-void ServiceResponse::Swap(ServiceResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ServiceResponse::InternalSwap(ServiceResponse* other) {
-  name_.Swap(&other->name_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ServiceResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ServiceResponse_descriptor_;
-  metadata.reflection = ServiceResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ServiceResponse
-
-// optional string name = 1;
-void ServiceResponse::clear_name() {
-  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ServiceResponse::name() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ServiceResponse.name)
-  return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServiceResponse::set_name(const ::std::string& value) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-void ServiceResponse::set_name(const char* value) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-void ServiceResponse::set_name(const char* value, size_t size) {
-  
-  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-::std::string* ServiceResponse::mutable_name() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ServiceResponse.name)
-  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ServiceResponse::release_name() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ServiceResponse.name)
-  
-  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ServiceResponse::set_allocated_name(::std::string* name) {
-  if (name != NULL) {
-    
-  } else {
-    
-  }
-  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ServiceResponse.name)
-}
-
-inline const ServiceResponse* ServiceResponse::internal_default_instance() {
-  return &ServiceResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// ===================================================================
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int ErrorResponse::kErrorCodeFieldNumber;
-const int ErrorResponse::kErrorMessageFieldNumber;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-
-ErrorResponse::ErrorResponse()
-  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
-  if (this != internal_default_instance()) protobuf_InitDefaults_reflection_2eproto();
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:grpc.reflection.v1alpha.ErrorResponse)
-}
-
-void ErrorResponse::InitAsDefaultInstance() {
-}
-
-ErrorResponse::ErrorResponse(const ErrorResponse& from)
-  : ::google::protobuf::Message(),
-    _internal_metadata_(NULL) {
-  SharedCtor();
-  UnsafeMergeFrom(from);
-  // @@protoc_insertion_point(copy_constructor:grpc.reflection.v1alpha.ErrorResponse)
-}
-
-void ErrorResponse::SharedCtor() {
-  error_message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-  error_code_ = 0;
-  _cached_size_ = 0;
-}
-
-ErrorResponse::~ErrorResponse() {
-  // @@protoc_insertion_point(destructor:grpc.reflection.v1alpha.ErrorResponse)
-  SharedDtor();
-}
-
-void ErrorResponse::SharedDtor() {
-  error_message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-void ErrorResponse::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* ErrorResponse::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return ErrorResponse_descriptor_;
-}
-
-const ErrorResponse& ErrorResponse::default_instance() {
-  protobuf_InitDefaults_reflection_2eproto();
-  return *internal_default_instance();
-}
-
-::google::protobuf::internal::ExplicitlyConstructed<ErrorResponse> ErrorResponse_default_instance_;
-
-ErrorResponse* ErrorResponse::New(::google::protobuf::Arena* arena) const {
-  ErrorResponse* n = new ErrorResponse;
-  if (arena != NULL) {
-    arena->Own(n);
-  }
-  return n;
-}
-
-void ErrorResponse::Clear() {
-// @@protoc_insertion_point(message_clear_start:grpc.reflection.v1alpha.ErrorResponse)
-  error_code_ = 0;
-  error_message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-
-bool ErrorResponse::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
-  ::google::protobuf::uint32 tag;
-  // @@protoc_insertion_point(parse_start:grpc.reflection.v1alpha.ErrorResponse)
-  for (;;) {
-    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
-    tag = p.first;
-    if (!p.second) goto handle_unusual;
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional int32 error_code = 1;
-      case 1: {
-        if (tag == 8) {
-
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &error_code_)));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectTag(18)) goto parse_error_message;
-        break;
-      }
-
-      // optional string error_message = 2;
-      case 2: {
-        if (tag == 18) {
-         parse_error_message:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_error_message()));
-          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-            this->error_message().data(), this->error_message().length(),
-            ::google::protobuf::internal::WireFormatLite::PARSE,
-            "grpc.reflection.v1alpha.ErrorResponse.error_message"));
-        } else {
-          goto handle_unusual;
-        }
-        if (input->ExpectAtEnd()) goto success;
-        break;
-      }
-
-      default: {
-      handle_unusual:
-        if (tag == 0 ||
-            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          goto success;
-        }
-        DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
-        break;
-      }
-    }
-  }
-success:
-  // @@protoc_insertion_point(parse_success:grpc.reflection.v1alpha.ErrorResponse)
-  return true;
-failure:
-  // @@protoc_insertion_point(parse_failure:grpc.reflection.v1alpha.ErrorResponse)
-  return false;
-#undef DO_
-}
-
-void ErrorResponse::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // @@protoc_insertion_point(serialize_start:grpc.reflection.v1alpha.ErrorResponse)
-  // optional int32 error_code = 1;
-  if (this->error_code() != 0) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->error_code(), output);
-  }
-
-  // optional string error_message = 2;
-  if (this->error_message().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->error_message().data(), this->error_message().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ErrorResponse.error_message");
-    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      2, this->error_message(), output);
-  }
-
-  // @@protoc_insertion_point(serialize_end:grpc.reflection.v1alpha.ErrorResponse)
-}
-
-::google::protobuf::uint8* ErrorResponse::InternalSerializeWithCachedSizesToArray(
-    bool deterministic, ::google::protobuf::uint8* target) const {
-  (void)deterministic; // Unused
-  // @@protoc_insertion_point(serialize_to_array_start:grpc.reflection.v1alpha.ErrorResponse)
-  // optional int32 error_code = 1;
-  if (this->error_code() != 0) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->error_code(), target);
-  }
-
-  // optional string error_message = 2;
-  if (this->error_message().size() > 0) {
-    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
-      this->error_message().data(), this->error_message().length(),
-      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
-      "grpc.reflection.v1alpha.ErrorResponse.error_message");
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->error_message(), target);
-  }
-
-  // @@protoc_insertion_point(serialize_to_array_end:grpc.reflection.v1alpha.ErrorResponse)
-  return target;
-}
-
-size_t ErrorResponse::ByteSizeLong() const {
-// @@protoc_insertion_point(message_byte_size_start:grpc.reflection.v1alpha.ErrorResponse)
-  size_t total_size = 0;
-
-  // optional int32 error_code = 1;
-  if (this->error_code() != 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::Int32Size(
-        this->error_code());
-  }
-
-  // optional string error_message = 2;
-  if (this->error_message().size() > 0) {
-    total_size += 1 +
-      ::google::protobuf::internal::WireFormatLite::StringSize(
-        this->error_message());
-  }
-
-  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = cached_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void ErrorResponse::MergeFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:grpc.reflection.v1alpha.ErrorResponse)
-  if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
-  const ErrorResponse* source =
-      ::google::protobuf::internal::DynamicCastToGenerated<const ErrorResponse>(
-          &from);
-  if (source == NULL) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:grpc.reflection.v1alpha.ErrorResponse)
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:grpc.reflection.v1alpha.ErrorResponse)
-    UnsafeMergeFrom(*source);
-  }
-}
-
-void ErrorResponse::MergeFrom(const ErrorResponse& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:grpc.reflection.v1alpha.ErrorResponse)
-  if (GOOGLE_PREDICT_TRUE(&from != this)) {
-    UnsafeMergeFrom(from);
-  } else {
-    MergeFromFail(__LINE__);
-  }
-}
-
-void ErrorResponse::UnsafeMergeFrom(const ErrorResponse& from) {
-  GOOGLE_DCHECK(&from != this);
-  if (from.error_code() != 0) {
-    set_error_code(from.error_code());
-  }
-  if (from.error_message().size() > 0) {
-
-    error_message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.error_message_);
-  }
-}
-
-void ErrorResponse::CopyFrom(const ::google::protobuf::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:grpc.reflection.v1alpha.ErrorResponse)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void ErrorResponse::CopyFrom(const ErrorResponse& from) {
-// @@protoc_insertion_point(class_specific_copy_from_start:grpc.reflection.v1alpha.ErrorResponse)
-  if (&from == this) return;
-  Clear();
-  UnsafeMergeFrom(from);
-}
-
-bool ErrorResponse::IsInitialized() const {
-
-  return true;
-}
-
-void ErrorResponse::Swap(ErrorResponse* other) {
-  if (other == this) return;
-  InternalSwap(other);
-}
-void ErrorResponse::InternalSwap(ErrorResponse* other) {
-  std::swap(error_code_, other->error_code_);
-  error_message_.Swap(&other->error_message_);
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  std::swap(_cached_size_, other->_cached_size_);
-}
-
-::google::protobuf::Metadata ErrorResponse::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = ErrorResponse_descriptor_;
-  metadata.reflection = ErrorResponse_reflection_;
-  return metadata;
-}
-
-#if PROTOBUF_INLINE_NOT_IN_HEADERS
-// ErrorResponse
-
-// optional int32 error_code = 1;
-void ErrorResponse::clear_error_code() {
-  error_code_ = 0;
-}
-::google::protobuf::int32 ErrorResponse::error_code() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ErrorResponse.error_code)
-  return error_code_;
-}
-void ErrorResponse::set_error_code(::google::protobuf::int32 value) {
-  
-  error_code_ = value;
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ErrorResponse.error_code)
-}
-
-// optional string error_message = 2;
-void ErrorResponse::clear_error_message() {
-  error_message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-const ::std::string& ErrorResponse::error_message() const {
-  // @@protoc_insertion_point(field_get:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  return error_message_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ErrorResponse::set_error_message(const ::std::string& value) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
-  // @@protoc_insertion_point(field_set:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-void ErrorResponse::set_error_message(const char* value) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-void ErrorResponse::set_error_message(const char* value, size_t size) {
-  
-  error_message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-::std::string* ErrorResponse::mutable_error_message() {
-  
-  // @@protoc_insertion_point(field_mutable:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  return error_message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-::std::string* ErrorResponse::release_error_message() {
-  // @@protoc_insertion_point(field_release:grpc.reflection.v1alpha.ErrorResponse.error_message)
-  
-  return error_message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
-}
-void ErrorResponse::set_allocated_error_message(::std::string* error_message) {
-  if (error_message != NULL) {
-    
-  } else {
-    
-  }
-  error_message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), error_message);
-  // @@protoc_insertion_point(field_set_allocated:grpc.reflection.v1alpha.ErrorResponse.error_message)
-}
-
-inline const ErrorResponse* ErrorResponse::internal_default_instance() {
-  return &ErrorResponse_default_instance_.get();
-}
-#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace v1alpha
-}  // namespace reflection
-}  // namespace grpc
-
-// @@protoc_insertion_point(global_scope)
diff --git a/test/cpp/util/proto_reflection_descriptor_database.h b/test/cpp/util/proto_reflection_descriptor_database.h
index dfa3604..4637c04 100644
--- a/test/cpp/util/proto_reflection_descriptor_database.h
+++ b/test/cpp/util/proto_reflection_descriptor_database.h
@@ -38,14 +38,9 @@
 #include <unordered_set>
 #include <vector>
 
-// GRPC_NO_GENERATED_CODE indicates generated pb files should not be used
-#ifdef GRPC_NO_GENERATED_CODE
-#include "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h"
-#else
-#include <grpc++/ext/reflection.grpc.pb.h>
-#endif  // GRPC_NO_GENERATED_CODE
 #include <grpc++/grpc++.h>
 #include <grpc++/impl/codegen/config_protobuf.h>
+#include "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h"
 
 namespace grpc {
 
diff --git a/tools/codegen/extensions/gen_reflection_proto.sh b/tools/codegen/extensions/gen_reflection_proto.sh
deleted file mode 100755
index ea7689f..0000000
--- a/tools/codegen/extensions/gen_reflection_proto.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/bash
-
-# Copyright 2016, 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.
-
-set -e
-cd $(dirname $0)/../../..
-
-PROTO_DIR="src/proto/grpc/reflection/v1alpha"
-PROTO_FILE="reflection"
-HEADER_DIR="include/grpc++/ext"
-SRC_DIR="src/cpp/ext"
-INCLUDE_DIR="grpc++/ext"
-TMP_DIR="tmp"
-
-if hash grpc_cpp_plugin 2>/dev/null; then
-  GRPC_PLUGIN=$(which grpc_cpp_plugin)
-else
-  if [ -f bins/opt/grpc_cpp_plugin ]; then
-    GRPC_PLUGIN="bins/opt/grpc_cpp_plugin"
-  else
-    echo "gRPC protoc plugin not found"
-    exit 1
-  fi
-fi
-
-if hash protoc 2>/dev/null; then
-  PROTOC=$(which protoc)
-else
-  if [ -f bins/opt/protobuf/protoc ]; then
-    PROTOC="bins/opt/protobuf/protoc"
-  else
-    echo "protoc not found"
-    exit 1
-  fi
-fi
-
-TMP_DIR=${TMP_DIR}_${PROTO_FILE}
-
-[ ! -d $HEADER_DIR ] && mkdir -p $HEADER_DIR || :
-[ ! -d $SRC_DIR ] && mkdir -p $SRC_DIR || :
-[ ! -d $TMP_DIR ] && mkdir -p $TMP_DIR || :
-
-$PROTOC -I$PROTO_DIR --cpp_out=$TMP_DIR ${PROTO_DIR}/${PROTO_FILE}.proto
-$PROTOC -I$PROTO_DIR --grpc_out=$TMP_DIR --plugin=protoc-gen-grpc=${GRPC_PLUGIN} ${PROTO_DIR}/${PROTO_FILE}.proto
-
-sed -i "s/\"${PROTO_FILE}.pb.h\"/<${INCLUDE_DIR/\//\\\/}\/${PROTO_FILE}.pb.h>/g" ${TMP_DIR}/${PROTO_FILE}.pb.cc
-sed -i "s/\"${PROTO_FILE}.pb.h\"/<${INCLUDE_DIR/\//\\\/}\/${PROTO_FILE}.pb.h>/g" ${TMP_DIR}/${PROTO_FILE}.grpc.pb.h
-sed -i "s/\"${PROTO_FILE}.pb.h\"/<${INCLUDE_DIR/\//\\\/}\/${PROTO_FILE}.pb.h>/g" ${TMP_DIR}/${PROTO_FILE}.grpc.pb.cc
-sed -i "s/\"${PROTO_FILE}.grpc.pb.h\"/<${INCLUDE_DIR/\//\\\/}\/${PROTO_FILE}.grpc.pb.h>/g" ${TMP_DIR}/${PROTO_FILE}.grpc.pb.cc
-
-sed -i "1s/.*/\/\/ Generated by tools\/codegen\/extensions\/gen_reflection_proto.sh/g" ${TMP_DIR}/*.pb.h
-sed -i "1s/.*/\/\/ Generated by tools\/codegen\/extensions\/gen_reflection_proto.sh/g" ${TMP_DIR}/*.pb.cc
-
-/bin/cp LICENSE ${TMP_DIR}/TMP_LICENSE
-sed -i -e "s/./ &/" -e "s/.*/ \*&/" ${TMP_DIR}/TMP_LICENSE
-sed -i -r "\$a\ *\n *\/\n\n"  ${TMP_DIR}/TMP_LICENSE
-
-sed -i -e "1s/^/ *\n/" -e "1s/^/\/*\n/" ${TMP_DIR}/*.pb.h
-sed -i -e "1s/^/ *\n/" -e "1s/^/\/*\n/" ${TMP_DIR}/*.pb.cc
-
-sed -i "2r ${TMP_DIR}/TMP_LICENSE" ${TMP_DIR}/*.pb.h
-sed -i "2r ${TMP_DIR}/TMP_LICENSE" ${TMP_DIR}/*.pb.cc
-
-/bin/mv ${TMP_DIR}/${PROTO_FILE}.pb.h ${HEADER_DIR}
-/bin/mv ${TMP_DIR}/${PROTO_FILE}.grpc.pb.h ${HEADER_DIR}
-/bin/mv ${TMP_DIR}/${PROTO_FILE}.pb.cc ${SRC_DIR}
-/bin/mv ${TMP_DIR}/${PROTO_FILE}.grpc.pb.cc ${SRC_DIR}
-/bin/rm -r $TMP_DIR
diff --git a/tools/distrib/check_generated_pb_files.sh b/tools/distrib/check_generated_pb_files.sh
deleted file mode 100755
index 6b93895..0000000
--- a/tools/distrib/check_generated_pb_files.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Copyright 2016, 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.
-
-set -ex
-
-# change to root directory
-cd $(dirname $0)/../..
-
-# build grpc_check_generated_pb_files docker image
-docker build -t grpc_check_generated_pb_files tools/dockerfile/grpc_check_generated_pb_files
-
-# run check_pb_files against the checked out codebase
-docker run -e TEST=$TEST --rm=true -v ${HOST_GIT_ROOT:-`pwd`}:/var/local/jenkins/grpc -t grpc_check_generated_pb_files /var/local/jenkins/grpc/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
-
-# If the test fails, please make sure your protobuf submodule is up-to-date and run
-# tools/codegen/extensions/gen_reflection_proto.sh to update the generated files.
diff --git a/tools/dockerfile/grpc_check_generated_pb_files/Dockerfile b/tools/dockerfile/grpc_check_generated_pb_files/Dockerfile
deleted file mode 100644
index d19bc67..0000000
--- a/tools/dockerfile/grpc_check_generated_pb_files/Dockerfile
+++ /dev/null
@@ -1,73 +0,0 @@
-# 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.
-
-FROM debian:jessie
-
-# Install Git and basic packages.
-RUN apt-get update && apt-get install -y \
-  autoconf \
-  autotools-dev \
-  build-essential \
-  bzip2 \
-  ccache \
-  curl \
-  gcc \
-  gcc-multilib \
-  git \
-  golang \
-  gyp \
-  lcov \
-  libc6 \
-  libc6-dbg \
-  libc6-dev \
-  libgtest-dev \
-  libtool \
-  make \
-  perl \
-  strace \
-  python-dev \
-  python-setuptools \
-  python-yaml \
-  telnet \
-  unzip \
-  wget \
-  zip && apt-get clean
-
-#================
-# Build profiling
-RUN apt-get update && apt-get install -y time && apt-get clean
-
-#=================
-# C++ dependencies
-RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
-
-RUN mkdir /var/local/jenkins
-
-# Define the default command.
-CMD ["bash"]
diff --git a/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh b/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
deleted file mode 100755
index 9db7aae..0000000
--- a/tools/dockerfile/grpc_check_generated_pb_files/check_pb_files.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# 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.
-
-set -e
-
-mkdir -p /var/local/git
-git clone /var/local/jenkins/grpc /var/local/git/grpc
-# clone gRPC submodules, use data from locally cloned submodules where possible
-(cd /var/local/jenkins/grpc/ && git submodule foreach 'cd /var/local/git/grpc \
-&& git submodule update --init --reference /var/local/jenkins/grpc/${name} \
-${name}')
-
-cd /var/local/git/grpc
-
-# build grpc cpp plugin for generating grpc pb files
-make grpc_cpp_plugin
-
-# generate pb files
-tools/codegen/extensions/gen_reflection_proto.sh
-
-# check if the pb files in the checked out codebase are identical with the newly
-# generated ones
-git diff --exit-code
diff --git a/tools/run_tests/sanity/sanity_tests.yaml b/tools/run_tests/sanity/sanity_tests.yaml
index e699c51..c5945c6 100644
--- a/tools/run_tests/sanity/sanity_tests.yaml
+++ b/tools/run_tests/sanity/sanity_tests.yaml
@@ -11,4 +11,3 @@
 - script: tools/distrib/check_nanopb_output.sh
 - script: tools/distrib/check_include_guards.py
 - script: tools/distrib/python/check_grpcio_tools.py
-- script: tools/distrib/check_generated_pb_files.sh
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 5e8290a..02d22b1 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -2446,7 +2446,7 @@
       "gpr", 
       "grpc", 
       "grpc++", 
-      "grpc++_reflection", 
+      "grpc++_proto_reflection_desc_db", 
       "grpc++_test_config", 
       "grpc_cli_libs"
     ], 
@@ -2565,8 +2565,9 @@
       "grpc", 
       "grpc++", 
       "grpc++_codegen_proto", 
-      "grpc++_config_proto", 
+      "grpc++_proto_reflection_desc_db", 
       "grpc++_reflection", 
+      "grpc++_test_util", 
       "grpc_cli_libs", 
       "grpc_test_util"
     ], 
@@ -2574,16 +2575,13 @@
       "src/proto/grpc/testing/echo.grpc.pb.h", 
       "src/proto/grpc/testing/echo.pb.h", 
       "src/proto/grpc/testing/echo_messages.grpc.pb.h", 
-      "src/proto/grpc/testing/echo_messages.pb.h", 
-      "test/cpp/util/string_ref_helper.h"
+      "src/proto/grpc/testing/echo_messages.pb.h"
     ], 
     "is_filegroup": false, 
     "language": "c++", 
     "name": "grpc_tool_test", 
     "src": [
-      "test/cpp/util/grpc_tool_test.cc", 
-      "test/cpp/util/string_ref_helper.cc", 
-      "test/cpp/util/string_ref_helper.h"
+      "test/cpp/util/grpc_tool_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -2775,20 +2773,17 @@
       "gpr_test_util", 
       "grpc", 
       "grpc++", 
+      "grpc++_proto_reflection_desc_db", 
       "grpc++_reflection", 
       "grpc++_test_util", 
       "grpc_test_util"
     ], 
-    "headers": [
-      "test/cpp/util/proto_reflection_descriptor_database.h"
-    ], 
+    "headers": [], 
     "is_filegroup": false, 
     "language": "c++", 
     "name": "proto_server_reflection_test", 
     "src": [
-      "test/cpp/end2end/proto_server_reflection_test.cc", 
-      "test/cpp/util/proto_reflection_descriptor_database.cc", 
-      "test/cpp/util/proto_reflection_descriptor_database.h"
+      "test/cpp/end2end/proto_server_reflection_test.cc"
     ], 
     "third_party": false, 
     "type": "target"
@@ -4970,6 +4965,25 @@
   {
     "deps": [
       "grpc++", 
+      "grpc++_config_proto", 
+      "grpc++_reflection_proto"
+    ], 
+    "headers": [
+      "test/cpp/util/proto_reflection_descriptor_database.h"
+    ], 
+    "is_filegroup": false, 
+    "language": "c++", 
+    "name": "grpc++_proto_reflection_desc_db", 
+    "src": [
+      "test/cpp/util/proto_reflection_descriptor_database.cc", 
+      "test/cpp/util/proto_reflection_descriptor_database.h"
+    ], 
+    "third_party": false, 
+    "type": "lib"
+  }, 
+  {
+    "deps": [
+      "grpc++", 
       "grpc++_reflection_proto"
     ], 
     "headers": [
@@ -4989,19 +5003,6 @@
     "type": "lib"
   }, 
   {
-    "deps": [], 
-    "headers": [
-      "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h", 
-      "src/proto/grpc/reflection/v1alpha/reflection.pb.h"
-    ], 
-    "is_filegroup": false, 
-    "language": "c++", 
-    "name": "grpc++_reflection_codegen", 
-    "src": [], 
-    "third_party": false, 
-    "type": "lib"
-  }, 
-  {
     "deps": [
       "grpc++"
     ], 
@@ -5100,7 +5101,9 @@
   {
     "deps": [
       "grpc++", 
-      "grpc++_reflection"
+      "grpc++_config_proto", 
+      "grpc++_proto_reflection_desc_db", 
+      "grpc++_reflection_proto"
     ], 
     "headers": [
       "test/cpp/util/cli_call.h", 
@@ -5108,7 +5111,6 @@
       "test/cpp/util/config_grpc_cli.h", 
       "test/cpp/util/grpc_tool.h", 
       "test/cpp/util/proto_file_parser.h", 
-      "test/cpp/util/proto_reflection_descriptor_database.h", 
       "test/cpp/util/service_describer.h"
     ], 
     "is_filegroup": false, 
@@ -5124,8 +5126,6 @@
       "test/cpp/util/grpc_tool.h", 
       "test/cpp/util/proto_file_parser.cc", 
       "test/cpp/util/proto_file_parser.h", 
-      "test/cpp/util/proto_reflection_descriptor_database.cc", 
-      "test/cpp/util/proto_reflection_descriptor_database.h", 
       "test/cpp/util/service_describer.cc", 
       "test/cpp/util/service_describer.h"
     ], 
@@ -7554,22 +7554,15 @@
     "type": "filegroup"
   }, 
   {
-    "deps": [
-      "grpc++_codegen_proto"
-    ], 
+    "deps": [], 
     "headers": [
-      "include/grpc++/ext/reflection.grpc.pb.h", 
-      "include/grpc++/ext/reflection.pb.h"
+      "src/proto/grpc/reflection/v1alpha/reflection.grpc.pb.h", 
+      "src/proto/grpc/reflection/v1alpha/reflection.pb.h"
     ], 
     "is_filegroup": true, 
     "language": "c++", 
     "name": "grpc++_reflection_proto", 
-    "src": [
-      "include/grpc++/ext/reflection.grpc.pb.h", 
-      "include/grpc++/ext/reflection.pb.h", 
-      "src/cpp/ext/reflection.grpc.pb.cc", 
-      "src/cpp/ext/reflection.pb.cc"
-    ], 
+    "src": [], 
     "third_party": false, 
     "type": "filegroup"
   }, 
diff --git a/vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj b/vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj
similarity index 90%
rename from vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj
rename to vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj
index d9e10c2..453b483 100644
--- a/vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj
+++ b/vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj
@@ -19,7 +19,7 @@
     </ProjectConfiguration>
   </ItemGroup>
   <PropertyGroup Label="Globals">
-    <ProjectGuid>{C8A925BF-4373-D85D-60AE-96CDCBBF33F2}</ProjectGuid>
+    <ProjectGuid>{7B95AF96-915A-7132-AE45-9FA37769FACE}</ProjectGuid>
     <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
     <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
   </PropertyGroup>
@@ -57,10 +57,10 @@
   </ImportGroup>
   <PropertyGroup Label="UserMacros" />
   <PropertyGroup Condition="'$(Configuration)'=='Debug'">
-    <TargetName>grpc++_reflection_codegen</TargetName>
+    <TargetName>grpc++_proto_reflection_desc_db</TargetName>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)'=='Release'">
-    <TargetName>grpc++_reflection_codegen</TargetName>
+    <TargetName>grpc++_proto_reflection_desc_db</TargetName>
   </PropertyGroup>
     <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -147,6 +147,14 @@
   </ItemDefinitionGroup>
 
   <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
+    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.cc">
     </ClCompile>
     <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.h">
@@ -156,6 +164,11 @@
     <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.grpc.pb.h">
     </ClInclude>
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
+      <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
diff --git a/vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj.filters b/vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj.filters
new file mode 100644
index 0000000..7e98918
--- /dev/null
+++ b/vsprojects/vcxproj/grpc++_proto_reflection_desc_db/grpc++_proto_reflection_desc_db.vcxproj.filters
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
+      <Filter>test\cpp\util</Filter>
+    </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.proto">
+      <Filter>src\proto\grpc\reflection\v1alpha</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
+      <Filter>include\grpc++\impl\codegen</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h">
+      <Filter>test\cpp\util</Filter>
+    </ClInclude>
+  </ItemGroup>
+
+  <ItemGroup>
+    <Filter Include="include">
+      <UniqueIdentifier>{9b233966-149a-36c4-89fb-11d63d8e00bb}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++">
+      <UniqueIdentifier>{1abcca00-34c5-513a-f372-4ef9b190910a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++\impl">
+      <UniqueIdentifier>{0059fdd3-0e35-5500-b8a5-b2e573d7537c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++\impl\codegen">
+      <UniqueIdentifier>{3f1b0e9e-802e-0535-bc3a-9685c2cf68d1}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src">
+      <UniqueIdentifier>{b479720c-6a7e-d0ca-bad6-db7cc12c9b0c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto">
+      <UniqueIdentifier>{d9aa2326-a033-5a44-a24b-25cdb4a58297}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc">
+      <UniqueIdentifier>{cdabe038-cb18-dc0f-8afa-0787627ebd55}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection">
+      <UniqueIdentifier>{3947956e-b4fb-30ce-fc28-da34aec087e7}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection\v1alpha">
+      <UniqueIdentifier>{79b4cc2b-5f94-0c9f-4754-1197647dd040}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test">
+      <UniqueIdentifier>{96bd243c-be93-569d-6a83-4a67ab8c1fa3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\cpp">
+      <UniqueIdentifier>{1041430f-3c5a-c462-ccc6-adc845814dbe}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="test\cpp\util">
+      <UniqueIdentifier>{c84ddb0b-56a0-0d29-a5c0-6cb1a7a49119}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj b/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj
index 2301281..da4c685 100644
--- a/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj
+++ b/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj
@@ -148,58 +148,6 @@
 
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\proto_server_reflection_plugin.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\reflection.grpc.pb.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\reflection.pb.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\create_auth_context.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_helper.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_windows.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\gpr_types.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_windows.h" />
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\src\cpp\ext\proto_server_reflection.h" />
@@ -209,10 +157,14 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\proto_server_reflection_plugin.cc">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\reflection.grpc.pb.cc">
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.cc">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\reflection.pb.cc">
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.h">
+    </ClInclude>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.grpc.pb.cc">
     </ClCompile>
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.grpc.pb.h">
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
diff --git a/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj.filters b/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj.filters
index 540e1c6..b292e06 100644
--- a/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_reflection/grpc++_reflection.vcxproj.filters
@@ -7,173 +7,14 @@
     <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\proto_server_reflection_plugin.cc">
       <Filter>src\cpp\ext</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\reflection.grpc.pb.cc">
-      <Filter>src\cpp\ext</Filter>
-    </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\src\cpp\ext\reflection.pb.cc">
-      <Filter>src\cpp\ext</Filter>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.proto">
+      <Filter>src\proto\grpc\reflection\v1alpha</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\proto_server_reflection_plugin.h">
       <Filter>include\grpc++\ext</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\reflection.grpc.pb.h">
-      <Filter>include\grpc++\ext</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\ext\reflection.pb.h">
-      <Filter>include\grpc++\ext</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\create_auth_context.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h">
-      <Filter>include\grpc++\impl\codegen\security</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_helper.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer_reader.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_windows.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\gpr_types.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_windows.h">
-      <Filter>include\grpc\impl\codegen</Filter>
-    </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
-      <Filter>include\grpc++\impl\codegen</Filter>
-    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\src\cpp\ext\proto_server_reflection.h">
@@ -185,30 +26,12 @@
     <Filter Include="include">
       <UniqueIdentifier>{e9441021-f78a-ec84-7efd-1883975feddb}</UniqueIdentifier>
     </Filter>
-    <Filter Include="include\grpc">
-      <UniqueIdentifier>{3b19b259-3bf4-c0fa-8e20-ed79acd63ac3}</UniqueIdentifier>
-    </Filter>
     <Filter Include="include\grpc++">
       <UniqueIdentifier>{c66e66b4-a64e-79bf-40e8-1a1bac124a3d}</UniqueIdentifier>
     </Filter>
     <Filter Include="include\grpc++\ext">
       <UniqueIdentifier>{8d96203b-d3ce-2164-74a6-06e0ff2b09af}</UniqueIdentifier>
     </Filter>
-    <Filter Include="include\grpc++\impl">
-      <UniqueIdentifier>{4e57d72c-762f-20b1-bdb9-bc7088ca6fda}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="include\grpc++\impl\codegen">
-      <UniqueIdentifier>{0f0f3943-7a9d-2b03-7eb1-2fbad4199428}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="include\grpc++\impl\codegen\security">
-      <UniqueIdentifier>{e1b8bc6d-2cd2-1283-868a-dfd64c3dbab8}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="include\grpc\impl">
-      <UniqueIdentifier>{7bccc379-84fb-c1aa-19aa-a0cc09ac59ac}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="include\grpc\impl\codegen">
-      <UniqueIdentifier>{a1f1904b-e820-dd3c-b4b0-14a6e0ff9d19}</UniqueIdentifier>
-    </Filter>
     <Filter Include="src">
       <UniqueIdentifier>{5ec5476e-3d72-e3f9-4f05-3f7c31c13651}</UniqueIdentifier>
     </Filter>
@@ -218,6 +41,18 @@
     <Filter Include="src\cpp\ext">
       <UniqueIdentifier>{d0204618-0f6a-dbc6-cf41-ffc04e76075a}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\proto">
+      <UniqueIdentifier>{728e13e3-db36-9633-3cb9-a74c0f11470d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc">
+      <UniqueIdentifier>{b49296ac-bc15-94ec-012b-5f8fe2ce2c1f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection">
+      <UniqueIdentifier>{d980f473-6242-4a95-556a-7d4c6d6a2a00}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection\v1alpha">
+      <UniqueIdentifier>{8c7d8658-ade7-6086-0e04-7e00380ddccf}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
 </Project>
 
diff --git a/vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj.filters b/vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj.filters
deleted file mode 100644
index 577dcc7..0000000
--- a/vsprojects/vcxproj/grpc++_reflection_codegen/grpc++_reflection_codegen.vcxproj.filters
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.proto">
-      <Filter>src\proto\grpc\reflection\v1alpha</Filter>
-    </ClCompile>
-  </ItemGroup>
-
-  <ItemGroup>
-    <Filter Include="src">
-      <UniqueIdentifier>{d6f45d49-92db-00f7-3dd4-e53f5768d80c}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="src\proto">
-      <UniqueIdentifier>{32b951f4-cef1-24a3-ffb9-bb229f0cdd6a}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="src\proto\grpc">
-      <UniqueIdentifier>{8fdcb9f3-4d86-2f49-5c15-c92e0e0f4fba}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="src\proto\grpc\reflection">
-      <UniqueIdentifier>{098a074c-f3de-2840-8009-1a3840af1efc}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="src\proto\grpc\reflection\v1alpha">
-      <UniqueIdentifier>{219ff371-7d3a-130c-5792-be36514a4e98}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-</Project>
-
diff --git a/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj b/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj
index 4c61baa..c97c7dc 100644
--- a/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj
+++ b/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj
@@ -147,12 +147,14 @@
   </ItemDefinitionGroup>
 
   <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
+  </ItemGroup>
+  <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\cli_call.h" />
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\cli_credentials.h" />
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\config_grpc_cli.h" />
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\grpc_tool.h" />
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_file_parser.h" />
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h" />
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\service_describer.h" />
   </ItemGroup>
   <ItemGroup>
@@ -164,14 +166,20 @@
     </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_file_parser.cc">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\service_describer.cc">
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.cc">
+    </ClCompile>
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.pb.h">
+    </ClInclude>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.grpc.pb.cc">
+    </ClCompile>
+    <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.grpc.pb.h">
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_reflection\grpc++_reflection.vcxproj">
-      <Project>{5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}</Project>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_proto_reflection_desc_db\grpc++_proto_reflection_desc_db.vcxproj">
+      <Project>{7B95AF96-915A-7132-AE45-9FA37769FACE}</Project>
     </ProjectReference>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
       <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
diff --git a/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj.filters b/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj.filters
index d4d6927..84a401a 100644
--- a/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_cli_libs/grpc_cli_libs.vcxproj.filters
@@ -13,12 +13,17 @@
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_file_parser.cc">
       <Filter>test\cpp\util</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
-      <Filter>test\cpp\util</Filter>
-    </ClCompile>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\service_describer.cc">
       <Filter>test\cpp\util</Filter>
     </ClCompile>
+    <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\reflection\v1alpha\reflection.proto">
+      <Filter>src\proto\grpc\reflection\v1alpha</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
+      <Filter>include\grpc++\impl\codegen</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\cli_call.h">
@@ -36,15 +41,39 @@
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_file_parser.h">
       <Filter>test\cpp\util</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h">
-      <Filter>test\cpp\util</Filter>
-    </ClInclude>
     <ClInclude Include="$(SolutionDir)\..\test\cpp\util\service_describer.h">
       <Filter>test\cpp\util</Filter>
     </ClInclude>
   </ItemGroup>
 
   <ItemGroup>
+    <Filter Include="include">
+      <UniqueIdentifier>{09004fab-571d-4499-ea07-ab14a367b0e6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++">
+      <UniqueIdentifier>{17074550-63b5-b955-9a30-33f983c6933a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++\impl">
+      <UniqueIdentifier>{9d5cca3a-e3da-b197-ba07-8ef7649de092}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="include\grpc++\impl\codegen">
+      <UniqueIdentifier>{12d6b95a-4072-e05e-8de7-79b0c2f7329f}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src">
+      <UniqueIdentifier>{5cc1b6f3-ef01-62ac-9b0e-1fd776f42182}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto">
+      <UniqueIdentifier>{86bd3e99-8380-85fd-f297-1ac2f018ed51}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc">
+      <UniqueIdentifier>{10c2568e-5695-1c21-6c51-172889d406f8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection">
+      <UniqueIdentifier>{5213881a-59f9-2d2e-43aa-1433dc6f70af}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="src\proto\grpc\reflection\v1alpha">
+      <UniqueIdentifier>{8a66b2e3-477b-66e2-fba8-6987c6381367}</UniqueIdentifier>
+    </Filter>
     <Filter Include="test">
       <UniqueIdentifier>{16a32a9f-93aa-5812-5a5e-be659aaa76aa}</UniqueIdentifier>
     </Filter>
diff --git a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj
index 78a0a63..fbb1bc8 100644
--- a/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj
+++ b/vsprojects/vcxproj/test/grpc_cli/grpc_cli.vcxproj
@@ -167,8 +167,8 @@
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_cli_libs\grpc_cli_libs.vcxproj">
       <Project>{86E35862-43E8-F59E-F906-AFE0348AD3D2}</Project>
     </ProjectReference>
-    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_reflection\grpc++_reflection.vcxproj">
-      <Project>{5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}</Project>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_proto_reflection_desc_db\grpc++_proto_reflection_desc_db.vcxproj">
+      <Project>{7B95AF96-915A-7132-AE45-9FA37769FACE}</Project>
     </ProjectReference>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++\grpc++.vcxproj">
       <Project>{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}</Project>
diff --git a/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj b/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj
index bdf310d..945c8d2 100644
--- a/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj
+++ b/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj
@@ -212,9 +212,6 @@
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\string_ref_helper.h" />
-  </ItemGroup>
-  <ItemGroup>
     <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.pb.cc">
     </ClCompile>
     <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.pb.h">
@@ -233,16 +230,20 @@
     </ClInclude>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\grpc_tool_test.cc">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\string_ref_helper.cc">
-    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_cli_libs\grpc_cli_libs.vcxproj">
       <Project>{86E35862-43E8-F59E-F906-AFE0348AD3D2}</Project>
     </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_proto_reflection_desc_db\grpc++_proto_reflection_desc_db.vcxproj">
+      <Project>{7B95AF96-915A-7132-AE45-9FA37769FACE}</Project>
+    </ProjectReference>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_reflection\grpc++_reflection.vcxproj">
       <Project>{5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}</Project>
     </ProjectReference>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_test_util\grpc++_test_util.vcxproj">
+      <Project>{0BE77741-552A-929B-A497-4EF7ECE17A64}</Project>
+    </ProjectReference>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
       <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
     </ProjectReference>
diff --git a/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj.filters b/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj.filters
index cd341e9..ab7d5ef 100644
--- a/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj.filters
+++ b/vsprojects/vcxproj/test/grpc_tool_test/grpc_tool_test.vcxproj.filters
@@ -10,9 +10,6 @@
     <ClCompile Include="$(SolutionDir)\..\test\cpp\util\grpc_tool_test.cc">
       <Filter>test\cpp\util</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\string_ref_helper.cc">
-      <Filter>test\cpp\util</Filter>
-    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
@@ -166,11 +163,6 @@
       <Filter>include\grpc++\impl\codegen</Filter>
     </ClInclude>
   </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\string_ref_helper.h">
-      <Filter>test\cpp\util</Filter>
-    </ClInclude>
-  </ItemGroup>
 
   <ItemGroup>
     <Filter Include="include">
diff --git a/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj b/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj
index 27fc168..d3cd3f1 100644
--- a/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj
+++ b/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj
@@ -160,15 +160,13 @@
   </ItemDefinitionGroup>
 
   <ItemGroup>
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h" />
-  </ItemGroup>
-  <ItemGroup>
     <ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\proto_server_reflection_test.cc">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
-    </ClCompile>
   </ItemGroup>
   <ItemGroup>
+    <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_proto_reflection_desc_db\grpc++_proto_reflection_desc_db.vcxproj">
+      <Project>{7B95AF96-915A-7132-AE45-9FA37769FACE}</Project>
+    </ProjectReference>
     <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc++_reflection\grpc++_reflection.vcxproj">
       <Project>{5F575402-3F89-5D1A-6910-9DB8BF5D2BAB}</Project>
     </ProjectReference>
diff --git a/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj.filters b/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj.filters
index 6d6e5c1..ae0b05a 100644
--- a/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj.filters
+++ b/vsprojects/vcxproj/test/proto_server_reflection_test/proto_server_reflection_test.vcxproj.filters
@@ -4,14 +4,6 @@
     <ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\proto_server_reflection_test.cc">
       <Filter>test\cpp\end2end</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.cc">
-      <Filter>test\cpp\util</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="$(SolutionDir)\..\test\cpp\util\proto_reflection_descriptor_database.h">
-      <Filter>test\cpp\util</Filter>
-    </ClInclude>
   </ItemGroup>
 
   <ItemGroup>
@@ -24,9 +16,6 @@
     <Filter Include="test\cpp\end2end">
       <UniqueIdentifier>{130f224c-89a5-54ea-7045-b54b4188c52b}</UniqueIdentifier>
     </Filter>
-    <Filter Include="test\cpp\util">
-      <UniqueIdentifier>{aae81aad-5563-fceb-1461-10fdec84c5b0}</UniqueIdentifier>
-    </Filter>
   </ItemGroup>
 </Project>