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 PopulateArrayFromListFunction(self, optional): | 15 def PopulateArrayFromListFunction(self, optional): |
16 """Returns the function to turn a list into a vector. | 16 """Returns the function to turn a list into a vector. |
17 """ | 17 """ |
18 populate_list_fn = ('PopulateOptionalArrayFromList' if optional | 18 populate_list_fn = ('PopulateOptionalArrayFromList' if optional |
19 else 'PopulateArrayFromList') | 19 else 'PopulateArrayFromList') |
20 return ('%s::%s') % (_API_UTIL_NAMESPACE, populate_list_fn) | 20 return ('%s::%s') % (_API_UTIL_NAMESPACE, populate_list_fn) |
21 | 21 |
22 def CreateValueFromArray(self, src, optional): | 22 def CreateValueFromArray(self, src, optional): |
23 """Generates code to create a scoped_pt<Value> from the array at src. | 23 """Generates code to create a scoped_pt<Value> from the array at src. |
24 | 24 |
25 |src| The variable to convert, either a vector or scoped_ptr<vector>. | 25 |src| The variable to convert, either a vector or std::unique_ptr<vector>. |
26 |optional| Whether |type_| was optional. Optional types are pointers so | 26 |optional| Whether |type_| was optional. Optional types are pointers so |
27 must be treated differently. | 27 must be treated differently. |
28 """ | 28 """ |
29 if optional: | 29 if optional: |
30 name = 'CreateValueFromOptionalArray' | 30 name = 'CreateValueFromOptionalArray' |
31 else: | 31 else: |
32 name = 'CreateValueFromArray' | 32 name = 'CreateValueFromArray' |
33 return '%s::%s(%s)' % (_API_UTIL_NAMESPACE, name, src) | 33 return '%s::%s(%s)' % (_API_UTIL_NAMESPACE, name, src) |
34 | 34 |
35 def GetIncludePath(self): | 35 def GetIncludePath(self): |
36 return '#include "tools/json_schema_compiler/util.h"' | 36 return '#include "tools/json_schema_compiler/util.h"' |
37 | 37 |
38 def GetValueTypeString(self, value, is_ptr=False): | 38 def GetValueTypeString(self, value, is_ptr=False): |
39 call = '.GetType()' | 39 call = '.GetType()' |
40 if is_ptr: | 40 if is_ptr: |
41 call = '->GetType()' | 41 call = '->GetType()' |
42 return 'json_schema_compiler::util::ValueTypeToString(%s%s)' % (value, call) | 42 return 'json_schema_compiler::util::ValueTypeToString(%s%s)' % (value, call) |
OLD | NEW |