summaryrefslogtreecommitdiffstats
path: root/tools/json_schema_compiler
diff options
context:
space:
mode:
authorncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 01:10:08 +0000
committerncj674@motorola.com <ncj674@motorola.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 01:10:08 +0000
commit1392bb685601fc56abafa7db7f937e937dc86bcd (patch)
treeb207137259f9c23067e52301aaad1a18b5ca0b6c /tools/json_schema_compiler
parent2647f6096c4f639415df15d1f7aa4760ac53fa7c (diff)
downloadchromium_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.py39
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)