Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Side by Side Diff: tools/json_schema_compiler/cc_generator.py

Issue 487533005: Add support for references in different paths in apis (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « extensions/generated_extensions_api.gni ('k') | tools/json_schema_compiler/compiler.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from code import Code 5 from code import Code
6 from model import PropertyType 6 from model import PropertyType
7 import cpp_util 7 import cpp_util
8 import schema_util 8 import schema_util
9 import util_cc_helper 9 import util_cc_helper
10 from cpp_namespace_environment import CppNamespaceEnvironment
10 11
11 class CCGenerator(object): 12 class CCGenerator(object):
12 def __init__(self, type_generator, cpp_namespace_pattern): 13 def __init__(self, type_generator):
13 self._type_generator = type_generator 14 self._type_generator = type_generator
14 self._cpp_namespace_pattern = cpp_namespace_pattern
15 15
16 def Generate(self, namespace): 16 def Generate(self, namespace):
17 return _Generator(namespace, 17 return _Generator(namespace, self._type_generator).Generate()
18 self._type_generator,
19 self._cpp_namespace_pattern).Generate()
20 18
21 19
22 class _Generator(object): 20 class _Generator(object):
23 """A .cc generator for a namespace. 21 """A .cc generator for a namespace.
24 """ 22 """
25 def __init__(self, namespace, cpp_type_generator, cpp_namespace_pattern): 23 def __init__(self, namespace, cpp_type_generator):
24 assert type(namespace.environment) is CppNamespaceEnvironment
26 self._namespace = namespace 25 self._namespace = namespace
27 self._type_helper = cpp_type_generator 26 self._type_helper = cpp_type_generator
28 self._cpp_namespace_pattern = cpp_namespace_pattern
29 self._util_cc_helper = ( 27 self._util_cc_helper = (
30 util_cc_helper.UtilCCHelper(self._type_helper)) 28 util_cc_helper.UtilCCHelper(self._type_helper))
31 self._generate_error_messages = namespace.compiler_options.get( 29 self._generate_error_messages = namespace.compiler_options.get(
32 'generate_error_messages', False) 30 'generate_error_messages', False)
33 31
34 def Generate(self): 32 def Generate(self):
35 """Generates a Code object with the .cc for a single namespace. 33 """Generates a Code object with the .cc for a single namespace.
36 """ 34 """
37 cpp_namespace = cpp_util.GetCppNamespace(self._cpp_namespace_pattern, 35 cpp_namespace = cpp_util.GetCppNamespace(
38 self._namespace.unix_name) 36 self._namespace.environment.namespace_pattern,
37 self._namespace.unix_name)
39 38
40 c = Code() 39 c = Code()
41 (c.Append(cpp_util.CHROMIUM_LICENSE) 40 (c.Append(cpp_util.CHROMIUM_LICENSE)
42 .Append() 41 .Append()
43 .Append(cpp_util.GENERATED_FILE_MESSAGE % self._namespace.source_file) 42 .Append(cpp_util.GENERATED_FILE_MESSAGE % self._namespace.source_file)
44 .Append() 43 .Append()
45 .Append(self._util_cc_helper.GetIncludePath()) 44 .Append(self._util_cc_helper.GetIncludePath())
46 .Append('#include "base/logging.h"') 45 .Append('#include "base/logging.h"')
47 .Append('#include "base/strings/string_number_conversions.h"') 46 .Append('#include "base/strings/string_number_conversions.h"')
48 .Append('#include "base/strings/utf_string_conversions.h"') 47 .Append('#include "base/strings/utf_string_conversions.h"')
(...skipping 1013 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 if self._generate_error_messages: 1061 if self._generate_error_messages:
1063 params = list(params) + ['base::string16* error'] 1062 params = list(params) + ['base::string16* error']
1064 return ', '.join(str(p) for p in params) 1063 return ', '.join(str(p) for p in params)
1065 1064
1066 def _GenerateArgs(self, args): 1065 def _GenerateArgs(self, args):
1067 """Builds the argument list for a function, given an array of arguments. 1066 """Builds the argument list for a function, given an array of arguments.
1068 """ 1067 """
1069 if self._generate_error_messages: 1068 if self._generate_error_messages:
1070 args = list(args) + ['error'] 1069 args = list(args) + ['error']
1071 return ', '.join(str(a) for a in args) 1070 return ', '.join(str(a) for a in args)
OLDNEW
« no previous file with comments | « extensions/generated_extensions_api.gni ('k') | tools/json_schema_compiler/compiler.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698