コード例 #1
0
    def _GenerateFunctionRegistryRegisterAll(self):
        c = code.Code()
        c.Append('// static')
        c.Sblock('void GeneratedFunctionRegistry::RegisterAll('
                 'ExtensionFunctionRegistry* registry) {')
        for namespace in self._model.namespaces.values():
            namespace_ifdefs = self._GetPlatformIfdefs(namespace)
            if namespace_ifdefs is not None:
                c.Append("#if %s" % namespace_ifdefs, indent_level=0)

            namespace_name = CapitalizeFirstLetter(
                namespace.name.replace("experimental.", ""))
            for function in namespace.functions.values():
                if function.nocompile:
                    continue
                c.Concat(
                    self._GenerateRegisterFunctions(namespace.name, function))

            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)
        c.Eblock("}")
        return c
コード例 #2
0
 def GenerateFunctionRegistry(self):
   c = code.Code()
   c.Sblock("class GeneratedFunctionRegistry {")
   c.Append("public:")
   c.Sblock("static void RegisterAll(ExtensionFunctionRegistry* registry) {")
   for namespace in self._model.namespaces.values():
     namespace_name = CapitalizeFirstLetter(namespace.name.replace(
         "experimental.", ""))
     for function in namespace.functions.values():
       if function.nocompile:
         continue
       function_name = JsFunctionNameToClassName(namespace.name, function.name)
       c.Append("registry->RegisterFunction<%sFunction>();" % (
           function_name))
   c.Eblock("}")
   c.Eblock("};")
   c.Append()
   return c