Make limited reflection optional (off by default).
authorDavid Reiss <dreiss@apache.org>
Wed, 27 Feb 2008 07:45:05 +0000 (07:45 +0000)
committerDavid Reiss <dreiss@apache.org>
Wed, 27 Feb 2008 07:45:05 +0000 (07:45 +0000)
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

compiler/cpp/src/generate/t_cpp_generator.cc
test/Makefile.am

index 27753ac..93ad7ee 100644 (file)
@@ -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);
+  }
 }
 
 /**
index 118d869..c690790 100644 (file)
@@ -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 = \