OLD | NEW |
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 _API_UTIL_NAMESPACE = 'json_schema_compiler::util' | 5 _API_UTIL_NAMESPACE = 'json_schema_compiler::util' |
6 | 6 |
7 | 7 |
8 class UtilCCHelper(object): | 8 class UtilCCHelper(object): |
9 """A util class that generates code that uses | 9 """A util class that generates code that uses |
10 tools/json_schema_compiler/util.cc. | 10 tools/json_schema_compiler/util.cc. |
11 """ | 11 """ |
12 def __init__(self, type_manager): | 12 def __init__(self, type_manager): |
13 self._type_manager = type_manager | 13 self._type_manager = type_manager |
14 | 14 |
15 def PopulateArrayFromList(self, src, dst, optional): | 15 def PopulateArrayFromList(self, src, dst, optional): |
16 """Generates code to get an array from src into dst. | 16 """Generates code to get an array from src into dst. |
17 | 17 |
18 src: ListValue* | 18 src: ListValue* |
19 dst: std::vector or scoped_ptr<std::vector> | 19 dst: std::vector or scoped_ptr<std::vector> |
20 """ | 20 """ |
21 if optional: | 21 populate_list_fn = ('PopulateOptionalArrayFromList' if optional |
22 val = '%(namespace)s::PopulateOptionalArrayFromList(*%(src)s, &%(dst)s)' | 22 else 'PopulateArrayFromList') |
23 else: | 23 return ('%s::%s(*%s, &%s)') % (_API_UTIL_NAMESPACE, |
24 val = '%(namespace)s::PopulateArrayFromList(*%(src)s, &%(dst)s)' | 24 populate_list_fn, |
25 return val % { | 25 src, |
26 'namespace': _API_UTIL_NAMESPACE, | 26 dst) |
27 'src': src, | |
28 'dst': dst | |
29 } | |
30 | 27 |
31 def CreateValueFromArray(self, src, optional): | 28 def CreateValueFromArray(self, src, optional): |
32 """Generates code to create a scoped_pt<Value> from the array at src. | 29 """Generates code to create a scoped_pt<Value> from the array at src. |
33 | 30 |
34 |src| The variable to convert, either a vector or scoped_ptr<vector>. | 31 |src| The variable to convert, either a vector or scoped_ptr<vector>. |
35 |optional| Whether |type_| was optional. Optional types are pointers so | 32 |optional| Whether |type_| was optional. Optional types are pointers so |
36 must be treated differently. | 33 must be treated differently. |
37 """ | 34 """ |
38 if optional: | 35 if optional: |
39 name = 'CreateValueFromOptionalArray' | 36 name = 'CreateValueFromOptionalArray' |
40 else: | 37 else: |
41 name = 'CreateValueFromArray' | 38 name = 'CreateValueFromArray' |
42 return '%s::%s(%s)' % (_API_UTIL_NAMESPACE, name, src) | 39 return '%s::%s(%s)' % (_API_UTIL_NAMESPACE, name, src) |
43 | 40 |
44 def GetIncludePath(self): | 41 def GetIncludePath(self): |
45 return '#include "tools/json_schema_compiler/util.h"' | 42 return '#include "tools/json_schema_compiler/util.h"' |
46 | 43 |
47 def GetValueTypeString(self, value, is_ptr=False): | 44 def GetValueTypeString(self, value, is_ptr=False): |
48 call = '.GetType()' | 45 call = '.GetType()' |
49 if is_ptr: | 46 if is_ptr: |
50 call = '->GetType()' | 47 call = '->GetType()' |
51 return 'json_schema_compiler::util::ValueTypeToString(%s%s)' % (value, call) | 48 return 'json_schema_compiler::util::ValueTypeToString(%s%s)' % (value, call) |
OLD | NEW |