From: David Reiss Date: Wed, 27 Feb 2008 07:45:05 +0000 (+0000) Subject: Make limited reflection optional (off by default). X-Git-Tag: 0.2.0~952 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=4ce2874fd50acaff7fa5b0f571098f50623752cc;p=common%2Fthrift.git Make limited reflection optional (off by default). Limited reflection is deprecated, and it is slowing down compilation. This change will disable generation of static reflection by default, but it adds a command line argument to re-enable it. Tested by running make check and building the C++ test client and server. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665520 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc index 27753ac1..93ad7eed 100644 --- a/compiler/cpp/src/generate/t_cpp_generator.cc +++ b/compiler/cpp/src/generate/t_cpp_generator.cc @@ -41,6 +41,9 @@ class t_cpp_generator : public t_oop_generator { iter = parsed_options.find("include_prefix"); use_include_prefix_ = (iter != parsed_options.end()); + iter = parsed_options.find("reflection_limited"); + gen_reflection_limited_ = (iter != parsed_options.end()); + out_dir_base_ = "gen-cpp"; } @@ -192,6 +195,11 @@ class t_cpp_generator : public t_oop_generator { */ std::string get_include_prefix(const t_program& program) const; + /** + * True iff we should generate limited reflectors for services. + */ + bool gen_reflection_limited_; + /** * True iff we should generate local reflection metadata for TDenseProtocol. */ @@ -1316,7 +1324,9 @@ void t_cpp_generator::generate_service_helpers(t_service* tservice) { generate_function_helpers(tservice, *f_iter); } - generate_service_limited_reflector(tservice); + if (gen_reflection_limited_) { + generate_service_limited_reflector(tservice); + } } /** diff --git a/test/Makefile.am b/test/Makefile.am index 118d8694..c6907909 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -66,13 +66,13 @@ ReflectionTest_LDADD = \ THRIFT = $(top_srcdir)/compiler/cpp/thrift gen-cpp/DebugProtoTest_types.cpp gen-cpp/PartiallyReflectable.cpp: DebugProtoTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense,reflection_limited $< gen-cpp/OptionalRequiredTest_types.cpp: OptionalRequiredTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense $< gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp: StressTest.thrift - $(THRIFT) --gen cpp $< + $(THRIFT) --gen cpp:dense,reflection_limited $< INCLUDES = \