diff options
author | ncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-27 01:10:08 +0000 |
---|---|---|
committer | ncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-27 01:10:08 +0000 |
commit | 1392bb685601fc56abafa7db7f937e937dc86bcd (patch) | |
tree | b207137259f9c23067e52301aaad1a18b5ca0b6c /tools/json_schema_compiler | |
parent | 2647f6096c4f639415df15d1f7aa4760ac53fa7c (diff) | |
download | chromium_src-1392bb685601fc56abafa7db7f937e937dc86bcd.zip chromium_src-1392bb685601fc56abafa7db7f937e937dc86bcd.tar.gz chromium_src-1392bb685601fc56abafa7db7f937e937dc86bcd.tar.bz2 |
JSON compiler to prefix the function classes by their type's names.
BUG=159265
Review URL: https://chromiumcodereview.appspot.com/12330089
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184813 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/json_schema_compiler')
-rw-r--r-- | tools/json_schema_compiler/cpp_bundle_generator.py | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/tools/json_schema_compiler/cpp_bundle_generator.py b/tools/json_schema_compiler/cpp_bundle_generator.py index 8b153e8..e98f0c3 100644 --- a/tools/json_schema_compiler/cpp_bundle_generator.py +++ b/tools/json_schema_compiler/cpp_bundle_generator.py @@ -82,12 +82,19 @@ class CppBundleGenerator(object): raise ValueError("Unsupported platform ifdef: %s" % platform.name) return ' and '.join(ifdefs) - def _GetNamespaceFunctions(self, namespace): - functions = list(namespace.functions.values()) - if namespace.compiler_options.get("generate_type_functions", False): - for type_ in namespace.types.values(): - functions += list(type_.functions.values()) - return functions + def _GenerateRegisterFunctions(self, namespace_name, function): + c = code.Code() + function_ifdefs = self._GetPlatformIfdefs(function) + if function_ifdefs is not None: + c.Append("#if %s" % function_ifdefs, indent_level=0) + + function_name = JsFunctionNameToClassName(namespace_name, function.name) + c.Append("registry->RegisterFunction<%sFunction>();" % ( + function_name)) + + if function_ifdefs is not None: + c.Append("#endif // %s" % function_ifdefs, indent_level=0) + return c def _GenerateFunctionRegistryRegisterAll(self): c = code.Code() @@ -101,19 +108,19 @@ class CppBundleGenerator(object): namespace_name = CapitalizeFirstLetter(namespace.name.replace( "experimental.", "")) - for function in self._GetNamespaceFunctions(namespace): + for function in namespace.functions.values(): if function.nocompile: continue - function_ifdefs = self._GetPlatformIfdefs(function) - if function_ifdefs is not None: - c.Append("#if %s" % function_ifdefs, indent_level=0) - - function_name = JsFunctionNameToClassName(namespace.name, function.name) - c.Append("registry->RegisterFunction<%sFunction>();" % ( - function_name)) + c.Concat(self._GenerateRegisterFunctions(namespace.name, function)) - if function_ifdefs is not None: - c.Append("#endif // %s" % function_ifdefs, indent_level=0) + for type_ in namespace.types.values(): + for function in type_.functions.values(): + if function.nocompile: + continue + namespace_types_name = JsFunctionNameToClassName( + namespace.name, type_.name) + c.Concat(self._GenerateRegisterFunctions(namespace_types_name, + function)) if namespace_ifdefs is not None: c.Append("#endif // %s" % namespace_ifdefs, indent_level=0) |